什么是内部类?
在一个类(A)中嵌套着另一个类(B)那么B就是A的内部类;
1 public class Text1 { 2 String name; 3 public class text2{ 4 public void SetName(){ 5 name="123"; 6 } 7 } 8 }
内部类的特点
内部类会自动保存外部类的应用。内部类可以直接访问内部类的成员
内部类的作用域:
内部类按照作用域可以进行如下分类
而上面《内部类的定义》中就是定义一个实例内部类静态内部类只需在Class关键字前面加一个Static关键字即可。
静态内部类不必须持有外部类的实例的引用
局部内部类就是在外部类的方法中定义内部类。局部内部类不能有访问修饰符
1 public class Text1 { 2 String name; 3 public void txt() 4 { 5 class text2{ 6 public void SetName(){ 7 name="123"; 8 } 9 } 10 } 11 }
局部内部类只在定义它的方法中有效。它还可以访问方法中定义的局部成员及参数
内部类的使用
在使用实例内部类之前必须先创建出它的外部类的实例
1 Text1 t=new Text1(); 2 Text1.text2 t=t.new text2(); 3
而静态内部类在使用前则不必先创建它的外部类的实例
1 Text1.text2 t=new text1.text2(); 2
比较实例内部类、静态内部类和局部内部类
内部类的继承:
当一个类(A)继承另一个类(B)的内部类(C)时该类必须自动引用另一个类(B)的实例
其引用关系如下:
A——》C——》B
内部类的用途:
封装
将外部类的实现封装成内部类对外只提供少量接口(方法)