内部类

什么是内部类?

在一个类(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 }
内部类的定义

内部类的特点

内部类会自动保存外部类的应用。内部类可以直接访问内部类的成员

内部类的作用域:

内部类按照作用域可以进行如下分类

image

而上面《内部类的定义》中就是定义一个实例内部类静态内部类只需在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 
静态内部类的调用

比较实例内部类、静态内部类和局部内部类

image

内部类的继承:

当一个类(A)继承另一个类(B)的内部类(C)时该类必须自动引用另一个类(B)的实例

其引用关系如下:

A——》C——》B

内部类的用途:

封装

将外部类的实现封装成内部类对外只提供少量接口(方法)

原文地址:https://www.cnblogs.com/wangzheand/p/5400643.html