Java中的内部类 - 非静态变量错误

Ŧhų*_*nDö 1 java class inner-classes

我还是java的新手,我试图创建一个内部类并在main中调用该方法.但是有一个编译错误说"非静态变量 - 这不能从静态上下文中引用"

请帮忙

class Class1{

    public static void main(String args []){
        Class2 myObject = new Class2();
        myObject.newMethod();
    }

    public class Class2{
        public void newMethod(){
            System.out.println("Second class");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 10

一个内部类需要的的一个实例的引用类以构造.如果你的类在逻辑上不需要它,那么使用staticmodifer使它"只是一个嵌套类":

public static class Class2 {
    public void newMethod(){
        System.out.println("Second class");
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:要创建的实例Class2作为一个内部类,你可以使用这样的:

Class1 outer = new Class1();
Class2 myObject = outer.new Class2();
Run Code Online (Sandbox Code Playgroud)

或者更简单地说:

Class2 myObject = new Class1().new Class2();
Run Code Online (Sandbox Code Playgroud)

...但除非你真的想要一个封闭实例的引用,否则使类只是一个嵌套类要简单得多.