内部类和静态内部类

时间:2022-04-01 05:38:27

一、概念

定义在一个类内部的类叫内部类,包含内部类的类称为外部类。内部类可以声明public、protected、private等访问限制,可以声明 为abstract的供其他内部类或外部类继承与扩展,或者声明为static、final的,也可以实现特定的接口。外部类按常规的类访问方式使用内部 类,唯一的差别是外部类可以访问内部类的所有方法与属性,包括私有方法与属性

二、实例创建

p:public class A{

    private int d;

    public class B{

      private int e;

      a.this.d;

    }

    public static class C{

      private int f;

      this.d;

    }

}

实例化

A a = new A();

A.B b = a.new B();

A.C c = new A.C();

访问变量

a.this.d;

this.d;

 

三、编译

每个类会产生一个.class文件,文件名即为类名。同样,内部类也会产生这么一个.class文件,但是它的名称却不是内部类的类名,而是有着严格的限制:外围类的名字,加上$,再加上内部类名字。