问题描述
|
关闭。这个问题是题外话。它当前不接受答案。
解决方法
这样编写您的主要方法:
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
,除非您绝对需要它,否则回头看看为什么需要使用静态变量。出于某种原因,仅在静态上下文中使用静态变量的限制就位。
如果绝对需要执行此操作,请在非静态函数中实例化该类的新对象,然后执行所需的操作。