静态内部类和非静态内部类的区别
主要区别有三点:定义、访问和声明
-
定义
- 静态内部类中可以定义类变量、类方法、常量、成员变量和方法;非静态内部类只能定义常量、成员变量和方法
-
访问
- 静态内部类只能访问外部类的静态成员变量和静态方法,并且不能引用外部类的对象(this);非静态内部类可以访问外部类的所有成员和方法
-
声明
- 声明静态内部类时,不依赖于外部类对象;声明非静态内部类时,依赖于外部类对象
# 静态内部类
OutClass.InnerClass innerClass = new OutClass.InnerClass();
# 非静态内部类
OutClass.InnerClass innerClass = new OutClass().new InnerClass();