什么是内部类
就是在一个类的内部在定义一个类。
publicclass OuterClass {
private String name ;
private int age;
class InnerClass{
public InnerClass(){
name = "chenssy";
age = 23;
}
}
}
InnerClass就是内部类
OuterClass就是外部类
为什么要使用内部类
1.内部类可以访问外部类的所有数据,包括private 数据
2.内部可以对同一个包的其他类隐藏起来
3.当想要定义一个回掉函数又不想编写大量代码时,使用匿名内部类方便
内部类有哪些特征
1.内部类可以申明为private的class,这样就只有外部类可以构造他
2.内部类本质是持有了一个外部类的引用outer,所以可以访问外部内的数据,这个是在编译器自动修改了内部类的构造器,在构造其中添加了一个外部内的引用给它,编译器会把外部内的this传给内部类持有。
3.编译器实际上把内部类和外部内生成了两个单独的文件,outerClass和outerClass$InnerClass文件。