内部类、方法内部类、局部代码块内部定义的类
(1)非静态内部类
class A{
class Inner{
//它的实例属于外部类
}
}
- 非静态内部类对象,必须依赖于外部对象才能存在
A a = new A();
Inner i = a.new Inner();
- 辅助外部对象,来封装局部的运算逻辑
(2)静态内部类
class A{ static class Inner{ //和外部类无关,可以直接创建实例 } }
- 和外部类无关,可以直接创建实例,他和一个普通的类没有区别
- 静态内部类,可选
- 两种类型,关系紧密时,可以选择静态内部类
Inner i = new Inner();
(3)局部内部类
class A{
void f(){
class Inner(){
}
}
}
(4)匿名内部类
Weapon w = new Weapon(){...};
- 大括号是匿名类
- new 新建匿名类的实例
- Weapon作为匿名类的父类型
- 小括号super() ,super(参数数据)