定义一个内部类
1class Outer{ //外部类2 private String msg = "cirry"; //私有成员属性3 public void fun(){ // 普通方法4 Inner inner = new Inner(); //实例化内部类对象5 inner.print();6
7 }8 class Inner{ // 内部类9 public void print(){10 System.out.println(Outer.this.msg); //outer类中的属性11 }12 }13}14
15public class InnerClass{5 collapsed lines
16 public static void main(String args []){17 Outer outer = new Outer(); //实例外部类对象18 outer.fun(); // 调用外部类中的方法19 }20}
将以上程序分为两个类:
1class Outer{ //外部类2 private String msg = "cirry"; //私有成员属性3 public void fun(){ // 普通方法4
5 //思考五:需要将我们的对象Outer传递到Inner类当中6 Inner inner = new Inner(this); //实例化内部类对象7 inner.print();8 }9 // 思考一:msg属性如果要被外部访问需要getter方法10 public String getMsg() {11 return this.msg;12 }13}14
15class Inner{ // 内部类19 collapsed lines
16 //思考三:Inner这个类对象实例化的时候需要Outer类的引用;17 private Outer out;18
19 //思考四:需要通过Inner类的构造方法获取Outer类对象20 public Inner(Outer out){21 this.out = out;22 }23 public void print(){24 //思考二:如果需要调用外部类中的getter方法,那么一定需要outer类对象25 System.out.println(this.out.getMsg()); //outer类中的属性26 }27}28
29public class InnerClass{30 public static void main(String args []){31 Outer outer = new Outer(); //实例外部类对象32 outer.fun(); // 调用外部类中的方法33 }34}
内部类实例化对象的格式如下:
1//外部类.内部类 内部类对象 = new 外部类().new 内部类();2Outer.Inner in = new Outer().new Inner();