我的代码如下所示:
public class Hello{
private class Word{
...
}
public static void main(String[] args) {
Word W = new Hello.Word();
}
}
如何从 main 中调用 Word 类?
Word W = new Hello.Word();
似乎不是正确的解决方案。
你可以做
Hello.Word word = new Hello().new Word();
由于Word
是一个内部类,你需要一个外部类的实例来实例化它。
您正在尝试从静态上下文中实例化另一个内部的非静态类。
要么使内部类静态:
private static class Word{
...
}
(但是,您不需要该Hello
部分,只需Word W = new Word();
做得很好)
或者创建外部类的实例,然后使用它创建内部类的实例。(Sotirios也提出了这个解决方案,但有更好的细节。)
Word
是的内部类Hello
,即没有类实例的存在,就没有类实例存在Hello
的机会Word
。所以你必须先创建一个对象Hello
,然后再创建一个Word
对象。
尝试这个
Hello.Word W = new Hello(). new Word();