1相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类
2内部类的分类:成员内部类(声明在类内部且方法外的)vs局部内部类(声明在类的方法里)
3成员内部类:
01是外部类的一个成员:①可以有修饰符(4个)②static final ③可以调用外部类的属性、方法
02具体类的特点:①abstract ②还可以在其内部定义属性、方法、构造器
4局部内部类:
5关于内部类,大家掌握三点:
①如何创建成员内部类的对象:
创建静态内部类的对象:可以直接通过外部类调用静态内部类的构造器
创建非静态的内部类的对象:必须先创建外部类的对象,通过外部类的对象调用内部类的构造器
②如何区分调用外部类、内部类的变量(尤其是变量重名时,内部类用“this.变量”,外部类用“外部类.this.变量”)
③局部内部类的使用:
局部内部类所在的方法返回值为void,这种使用方式较少。
常常使用一个方法,使其返回值为某个类或接口(如Comparable)的实现类的对象。而这个类或接口在方法内部创建实现
匿名类:
new Product(){
方法体
};
匿名局部内部类:
返回值为某个类或接口(如Comparable)的实现匿名类的对象。而这个类或接口在方法内部创建实现
return new Product(){
方法体
};