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(){}
}
}