从Main打电话给私人班级。两者都在公共课堂上

时间:2013-09-21 20:25:01

标签: java class private main

我的代码如下所示:

public class Hello{

    private class Word{ 
        ... 
    }

    public static void main(String[] args) {

        Word W = new Hello.Word();
    }
}

如何从main调用类Word?

Word W = new Hello.Word(); 

似乎不是正确的解决方案。

3 个答案:

答案 0 :(得分:2)

您正试图从静态上下文中实例化另一个非静态类。

使内部类静态:

 private static class Word{ 
    ... 
 }

(但是,您不需要Hello部分,只需Word W = new Word();即可完美)

或者创建外部类的实例,然后使用它创建内部类的实例。 (Sotirios suggested此解决方案也是如此,但有更好的细节。)

答案 1 :(得分:2)

你可以做到

Hello.Word word = new Hello().new Word();

由于Word是一个内部类,因此需要一个外部类的实例来实例化它。

答案 2 :(得分:0)

WordHello的内部类,即没有Hello类实例的存在,没有Word类实例存在的可能性。 所以你必须先创建一个对象Hello,然后再创建Word个对象 试试这个

    Hello.Word W =  new Hello(). new Word();