内部类
内部类是在一个类里定义另一个类
内部类可以直接访问外部类的成员,包括私有,外部类要访问内部类的成员必须创建对象
public class Outer{
private int num = 10;
public class Inner{
public void show() {
System.out.println(num);
}
}
public void method() {
Inner i = new Inner();
i.show();
}
}
成员内部类
将一个类设计为内部类的目的,多数是不想让外界访问,因此内部类的定义应私有化,再提供一个可以让外界调用的方法,方法内部创建内部类对象并调用
局部内部类
在方法中定义的类,外界无法直接调用,需要在方法内部创建对象并使用
局部内部类可以直接访问外部类的成员,也可以访问方法内的局部变量
匿名内部类
本质是一个继承了该类或者实现了该接口的子类对象(但匿名)
如果某个方法需要接口或抽象类的子类对象,可以传递一个匿名内部类以简化传统代码
使用匿名内部类就不用显式创建子类的对象,适用于一次性操作