可以声明一个类的3种不同上下文是什么?

sra*_*s97 4 java oop class

有人告诉我可以在Java中声明一个类的三种不同上下文。 它与程序中的位置有关,但我想不出它们是什么。

显然可以在页面顶部声明一个类,我能想到的唯一另一个示例就像一个嵌套类?
我觉得我可能会走错路了。

KaN*_*011 6

包装中

package com.example.mypackage;

public class TheClass {
}
Run Code Online (Sandbox Code Playgroud)

上课

package com.example.mypackage;

public class OuterClass {
    class InnerClass {
    }
}
Run Code Online (Sandbox Code Playgroud)

匿名地

public class MainClass {
    public static void main(String[] args) {
        AbstractClass myObject = new AbstractClass() {
            // overrides and other fields of the
            // anonymous class goes in this block
        };
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如@daniu在评论中所述,也可以在方法中创建一个类:

public class MainClass {
    public static void main(String[] args) {
        class MethodClass {
        }
        MethodClass myObject = new MethodClass();
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 您还可以在方法中定义命名类。 (4认同)