1.静态内部类中然后访问外部类非静态成员 2.如何实例化静态类部类 3.如何实例化实例内部类 4.实例内部类中如何访问与外部类重名变量 class OutClass{ public int b1=1; public static int b2=5; static class InnerClass1{//静态内部类 public int b3=1; public static int b4=6; public void test(){ System.out.println(b4); // 静态内部类中不能直接访问外部类的非静态的数据成员,但实例内部类可以 //System.out.println(b1); //但可以 OutClass o=new OutClass(); System.out.println(o.b1); System.out.println("test执行"); } } class InnerClass2{//实例内部类 public int b5=3; public int b6=7; public int b2=3;//同名 public void test2(){ System.out.println(b2);//输出的是内部类b2=5; //访问同名成员 OutClass o2=new OutClass(); //输出的是外部类b2=3; System.out.println(o2.b2); System.out.println(OutClass.this.b2); //输出的是内部类b2=5; System.out.println(this.b2); } } }
public class Teat { public static void main(String[] args) { //静态内部类实例化 OutClass.InnerClass1 i1=new OutClass.InnerClass1(); i1.test(); //实例化一个实例内补类 OutClass outClass=new OutClass(); OutClass.InnerClass2 i2=outClass.new InnerClass2(); i2.test2(); } }