首页
JAVA笔记
数据库笔记
混乱记忆
小站记
您现在的位置
java static 静态内部类和非静态内部类的区别
简介: 在 java 开放过程中内部类的使用在 swing、awt、swt、android 等项目的开发中较为常见,熟练使用好内部类可使其成为开放中的一大助力。
关键词
容器类:包含内部类定义代码的类在这里称为容器类。

非静态内部类
  1. 不可以包含静态函数和静态字段(继承下来的属性除外)。
  2. 非静态内部类中的函数可以引用容器类中的非静态字段和非静态函数。
  3. 不能通过容器类名称直接进行实例化,可以通过容器类实体间接进行实例化。如下:
public class A{
      public class B{
      }
}
错误方式:
 A.B b = new A.B();
正确方式:
A a = new A();
A.B b = a.new B();

静态内部类
  1. 可以包含静态函数和静态字段。
  2. 静态内部类中的未用 static 修饰的字段和函数都不是静态的。
  3. 静态内部类中的函数不能引用容器类中的非静态字段和非静态函数。
  4. 可以能通过容器类名称直接进行实例化如下:
public class A{
      public static class B{
      }
}

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