内部类

来源:互联网 发布:2016中国对外投资数据 编辑:程序博客网 时间:2024/06/06 10:42

1,在创建内部类对象时虚拟机会偷偷的维护一个指向外部类对象的引用,所以内部类对象可以访问外部类对象的所有成员。

2,匿名内部类也称为局部内部类,只能访问外部类对象的final成员,但要与用构造函数创建匿名内部类时传递给构造函数的非final对象区分开。

             final  Person outerPerson=new Person();

             Person outerPerson2=new Person();

             new  SomeBaseClass(){

                    Person p=outerPerson;

             }

 

            

            new  SomeBaseClass2(outerPerson2){

                    Person p=outerPerson2

             }

3,匿名内部类用实例构造函数块模拟构造函数

4,普通内部类不能包含静态成员:虚拟机在加载类时,会为静态成员分配内存。而根据内部类的设计思想,其成员初始化时必须维护一个指向外部类的引用,如果有了静态成员,则其静态成员在没有外部类对象时就可以初始化,严重wei


           

0 0