Java的内部类

类是java中定义的一个独立的程序单元,在某种状况下也能够把一个类放在另一个类的内部定义,这定义在内部的类就叫内部类或嵌套类。java

1.内部类提供了更好的封装,把一个内部类隐藏在外部类以内。内部类成员能够直接访问外部类的私有数据。内部类成员能够直接访问外部类的私有数据,匿名内部类是适合用于建立那些仅须要使用一次的类。内部类和外部类的区别,内部类能够比外部类多使用三个修饰符private、protected、static;非静态内部类不能拥有静态成员对象

2.通常内部类都被做为内部类定义,和类中的成员变量、方法、构造器、初始化块的类成员类似的类成员,局部内部类和匿名内部类则不是类成员。成员内部类能够分为两种:静态内部类和非静态内部类。外部类只能有两个做用域一个是同一个包内和任意位置,而内部类可使同一个包内,同一个类内,父子类和任何位置。内部类编译完后也是一个.class文件,但依托于父类。继承

3.用static修饰的静态内部类,静态内部类不属于外部类的对象而是属于外部类的自己。静态内部类是外部类的一个静态成员,所以外部类的全部方法、全部初始化块可使用静态内部类来定义变量、建立对象。但外部类依然不能直接访问静态内部类的成员。接口

4.内部类的使用,在外部类里使用内部类和不一样的类同样,定义变量建立实例和做为父类被继承;在外部类之外使用非静态内类(不能用private修饰);在外部类之外使用静态内部类。作用域

5.局部内部类是定义方法内部的一个类,对于局部成员而言,无论是局部变量还局部内部类,他们的上一级程序单元是方法而不是类,使用static修饰他们没有任何意义。编译

6.匿名内部类,建立匿名内部类是会当即建立一个类的实例,这个类定义当即消失,匿名内部类不能重复使用。匿名内部类的格式以下:new 实现接口()| 父类构造器(实参列表){  匿名内部类的类体方法 };匿名内部类不能是抽象的类、匿名内部类不能定义构造器。class

相关文章
相关标签/搜索