1.定义:
如果一个事物的内部包含另一个事物,那么这就是一个类内部包含另外一个类
例如:身体跟心脏的关系 / 汽车跟发动机的关系
2.分类:
a.成员内部类
b.局部内部类(匿名内部类)
3.成员内部类
格式:
修饰符 class 类名{
修饰符 class 内部类名 {
//...
}
//...
}
注意:内用外,随意访问,外用内,需要借助内部类对象
使用:
a.间接方式:在外部类方法中,使用内部类,然后main只调用外部类方法。
b.直接方式:外部类名称.内部类名称 对象名 = new 外部类名称().new 内部类名称();
注意:如果外部类跟内部类出现了重名现象,格式:外部类名称.this.外部类变量名
4.局部内部类
格式:
修饰符 class 类名 {
修饰符 返回值类型 外部类方法名 (参数列表){
class 局部内部类 {
//....
}
}
//.....
}
注意:只有所属方法才能使用
5.匿名内部类
作用:如果接口的实现类 / 父类的子类,只需要使用唯一的一次,这种情况下就可以省略掉该类的定义,改为使用匿名内部类
格式:
接口名称 对象名 = new 接口名称() {
//覆盖重写所有抽象方法
};
注意:匿名内部类只能使用一次