定义

什么是内部类

就是在一个类的内部在定义一个类。

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文件。

你可能感兴趣的:(定义)