如何解决“不能从静态上下文中引用非静态方法makeHands”是什么意思,如何避免呢?
| 关闭。这个问题是题外话。它当前不接受答案。解决方法
这样编写您的主要方法:
public static void main(String[] args) {
new Main().new Deck().makeHands();
}
解释有点令人费解,但我会尽力使其更清楚。
基本上,Deck
是Main
类的inner class
。内部类的一个特征(如果在这种情况下它们不是静态的)是没有外部类的实例就不会存在实例的事实。基本上,ѭ1的每个实例都需要引用Main
类的实例,如果没有if3ѭ实例,则不能创建Deck
实例。
我上面粘贴的语法将确保存在正确的实例:首先将创建一个Main实例,然后将创建一个Deck实例,该实例指向之前创建的Main实例。最后,它将调用非静态方法“ 8”。
此处提供了更全面的解释:http://download.oracle.com/javase/tutorial/java/javaOO/nested.html
,除非您绝对需要它,否则回头看看为什么需要使用静态变量。出于某种原因,仅在静态上下文中使用静态变量的限制就位。
如果绝对需要执行此操作,请在非静态函数中实例化该类的新对象,然后执行所需的操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。