百知教育学习 -胡鑫喆 -内部类
-
什么是内部类
-
概念:在一个类的内部再定义一个完整的类
class Outer{
编译时Outer.class
class Inner{
编译时Outer$Inner.class
}
}
-
特点:
- 编译之后可分别生成独立的字节码文件
- 内部类可直接访问外部类的私有成员,而不破坏封装
成员内部类
-
创建对象:先创建外部类对象,再通过 **外部类对象.new 内部类类名()**创建内部类对象
-
外部类类名.this 引用外部类的当前对象
静态内部类
-
class Outer{
static class StaticInner{}
}
创建对象时Outer.StaticInner in=new Outer.StaticInner();
不需要再创建一个父类对象
局部内部类
- 在方法内部的类
- 作用范围:从定义开始,到代码块结束
- 局部内部类不能定义静态成员
- 局部内部类可以访问外部类的私有成员,还能访问外部类的局部变量,但是要加上final。但是jdk8.0版本以上,被局部内部类访问的局部变量默认被final修饰,不加final也能访问
匿名内部类
-
特殊的局部内部类
- 1.继承某个类或实现某个接口
- 2**.只会创建一个对象**
new 父类名或者是接口名(){继承父类或者实现接口的代码};
-