内部类的分类
- 成员内部类
- 静态内部类
- 局部内部类
- 匿名内部类
内部类的概念
概念
在一个类的内部再定义一个完整的类
特点
- 编译之后可生成独立的字节码文件。
- 内部类可以直接访问外部类的私有成员,而不破坏封装。
- 可为外部类提供必要的内部功能组件。
成员内部类
-
在类的内部定义,与实例变量、实例方法同级别的类。
-
外部类的一个实例部分,创建内部类对象时,必须依赖外部类对象。
public class Testouter i
public static void main(string[] args){
//1创建外部类对象
outer outer=new outer();
//2创建内部类对象
Inner inner=outer.new Inner();
//也可以一步到位 Inner inner = new Outer().new Inner();
//调用内部类方法
inner.method();
}
}
- 当外部类、内部类存在重名属性时,会优先访问内部类属性。
public class Outer {
//外部类属性
private String name = "张三";
//内部类
class Inner{
//内部类有重名属性,需要使用Outer.this访问外部类属性
private String name = "李四";
public void show(){
System.out.println(name);//李四
System.out.println(Outer.this.name);//张三
}
}
}
- 成员内部类不能定义静态成员,但是可以包含静态常量