【问题标题】:Call Private Class from Main. Both in Public Class从 Main 调用 Private Class。都在公共课上
【发布时间】:2013-09-21 20:25:01
【问题描述】:
我的代码如下所示:
public class Hello{
private class Word{
...
}
public static void main(String[] args) {
Word W = new Hello.Word();
}
}
如何从 main 中调用 Word 类?
Word W = new Hello.Word();
似乎不是正确的解决方案。
【问题讨论】:
标签:
java
class
private
main
【解决方案1】:
你可以的
Hello.Word word = new Hello().new Word();
由于Word是一个内部类,你需要一个外部类的实例来实例化它。
【解决方案2】:
您正试图从静态上下文中实例化另一个内部的非静态类。
要么将内部类设为静态:
private static class Word{
...
}
(但是,您不需要 Hello 部分,只需 Word W = new Word(); 就可以了)
或者创建一个外部类的实例,然后使用它创建一个内部类的实例。 (Sotirios suggested 也是这个解决方案,但有更好的细节。)
【解决方案3】:
Word 是Hello 的内部类,即没有Hello 类实例的存在,就没有Word 类实例存在的机会。
所以你必须先创建一个对象Hello,然后再创建一个Word对象。
试试这个
Hello.Word W = new Hello(). new Word();