定义:将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。
内部类都有哪些形式?
根据内部类声明的位置(如同变量的分类),我们可以分为:
(1)成员内部类:
- 静态成员内部类
- 非静态成员内部类
(2)局部内部类
- 有名字的局部内部类
- 匿名的内部类
静态内部类语法格式:
【修饰符】 class 外部类{
【其他修饰符】 static class 内部类{
}
}
非静态成员内部类语法格式:
【修饰符】 class 外部类{
【修饰符】 class 内部类{
}
}
局部内部类语法格式:
【修饰符】 class 外部类{
【修饰符】 返回值类型 方法名(【形参列表】){
【final/abstract】 class 内部类{
}
}
}
匿名内部类语法格式
new 父类(【实参列表】){
重写方法...
}
//()中是否需要【实参列表】,看你想要让这个匿名内部类调用父类的哪个构造器,如果调用父类的无参构造,那么()中就不用写参数,如果调用父类的有参构造,那么()中需要传入实参
new 父接口(){
重写方法...
}
//()中没有参数,因为此时匿名内部类的父类是Object类,它只有一个无参构造