package com.inmind.innerclass03; /* 内部类:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。 分类: 1.成员内部类:(类中方法外) 2.局部内部类:(方法中) 匿名内部类(重点) ------------------------------------------------------- 成员内部类的定义(写在成员位置) public class 外部类名{ int i = 0; public class 内部类名{ } } 成员内部类中内容访问的注意事项: 1.内部类是可以直接使用外部类的成员变量 2.外部类要使用内部类的内容,必须通过创建内部类的对象 3.内部类访问外部类同名变量:必须使用外部类名.this.变量名(如OuterClass.this.value)。 */ public class MemberOutClass { //成员变量 private int num = 10; private int num1 = 40; //成员位置处,定义一个类,就是成员内部类 public class InnerClass{ int num = 20; int num2 = 30; public void innerMethod(){ System.out.println(MemberOutClass.this.num1); System.out.println(this.num); System.out.println(this.num2); System.out.println(MemberOutClass.this.num); System.out.println("成员内部类的innerMethod方法执行了"); } } //成员方法 public void outerMethod(){ System.out.println("外部类的outerMethod执行"); //创建成员内部类的对象,调用它的属性和行为 InnerClass innerClass = new InnerClass(); System.out.println(innerClass.num);//20 System.out.println(innerClass.num2);//30 innerClass.innerMethod(); } }