参考博客:
- Java-为什么非静态内部类里面不能定义静态方法、静态成员变量、静态初始化块?:
- 静态内部类:
内部类测试类,如下:
package com.ming.interview.inner;
import com.ming.interview.inner.Outer.Inner;
public class Outer {
private String name;
private static void get() {
System.out.println("外部类私有方法");
}
private static void getStatic() {
System.out.println("外部类私有静态方法");
}
public void processInnerGet() {
new Inner().get();
}
class Inner {
private void get() {
System.out.println("内部类私有方法" + name);
}
private void processOuterGet() {
new Outer().get();
}
private void processOuterGetStatic() {
Outer.getStatic();
}
}
public static void processInnerStaticGetStatic() {
InnerStatic.getStatic();
}
public static void processInnerStaticGet() {
new InnerStatic().get();
}
static class InnerStatic {
private static void getStatic() {
System.out.println("静态内部类私有静态方法");
System.out.println("静态内部类私有静态方法" + name);
}
private void get() {
System.out.println("静态内部类私有非静态方法");
System.out.println("静态内部类私有静态方法" + name);
}
}
private class InnerProtecet {
}
}
class Outer1 {
public void test() {
Outer outer = new Outer();
Outer.Inner inner1 = outer.new Inner();
Outer.Inner inner2 = new Outer().new Inner();
outer.new InnerProtecet();
inner1.get();
Outer.InnerStatic.getStatic();
}
}