JAVA 内部类

内部类
===============================
*类内部,或局部代码中定义的类
*内部类与外部类相互没有任何访问限制
 

  什么时候使用内部类
---------------------------------------
1. 外部类与内部类关系紧密
2. 作为隐藏类型(比如隐藏某种功能的实现,将内部类声明为private的)
3. 出于个人设计理念

非静态内部类
---------------------------------------
*属于实例
*不能定义静态成员

class A{
class B {}
}

创建实例:
A.B b = new A().new B();


静态内部类
---------------------------------------
*属于类
class A{
static class B{}
}

创建实例:
A.B b = new A.B();


局部内部类
---------------------------------------
*在方法中或局部代码块中定义的类

class A{
void a(){
class B {}
}
}

匿名内部类

--------------------------------------

在代码块中直接new 一个接口并添加代码块的不带名称的类

class A{

  void a(){

   interface b = new interface(){}

  }

}

原文地址:https://www.cnblogs.com/youk/p/3823412.html