静态内部类
如何拿到静态内部类对象?:
OuterClass2.InnerClass2 innerClass2 = new OuterClass2.InnerClass2();
运行如下代码:
class OuterClass2{
public int data1 = 1;
public int data2 = 2;
public static int data3 = 3;
//静态内部类:
static class InnerClass2{
public int data1 = 1000;
public int data4 = 4;
private int data5 = 5;
public static final int data6 = 6;
public void test(){
System.out.println(data1);
System.out.println(data2);
System.out.println(data3);
System.out.println(data4);
System.out.println(data5);
System.out.println(data6);
System.out.println("InnerClass的test方法");
}
}
}
public class TestDemo4 {
public static void main(String[] args) {
OuterClass2.InnerClass2 innerClass2 = new OuterClass2.InnerClass2();
innerClass2.test();
}
}
会报错:
因为data2是外部类的非静态成员。那么如何在静态内部类中获取外部类的非静态成员?
理论上是不可以的,但实际可以做到。最简单的办法:
或者:
只要提供了外部类对象的引用,就可以访问。所以问题就转变为,如何在静态内部类中,获取外部类的对象。