- 内部类格式
public class Outer { public class Inner { } }
- 内部类访问特点内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员,必须创建对象
public class Outer { // 内部属性 private int num = 10; // 内部类 public class Inner { // 内部类方法 public void show() { System.out.println(num); } } // 内部方法 public void innerShow() { Inner i = new Inner(); i.show(); } }
- 在其他类使用内部类
Inner i = new Outer().new Inner(); i.show(); Outer o = new Outer(); o.innerShow();
- 局部内部类
局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用,该类可以直接访问外部类的成员,可以访问方法内的局部变量
public class Outer { // 内部属性 private int num = 10; // 内部方法 public void innerShow() { // 内部类 class Inner { // 内部类方法 public void show() { System.out.println(num); } } // 创建调用局部内部类 Inner i = new Inner(); i.show(); } }
- 匿名内部类
public class Outer { // 内部属性 private int num = 10; // 内部方法 public void innerShow() { // 匿名内部类 // new Inner() { // public void show() { // System.out.println(num); // } // }.show(); Inner i = new Inner() { public void show() { System.out.println(num); } }; i.show(); } }