【问题标题】: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】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-11-23
          • 2019-03-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多