内部类基础
类里边再定义了类,可以是成员内部类,也可以是局部内部类(方法里边)
一、成员内部类
①可以有访问修饰符
②class文件名:外部类类名$内部类类名.class
③就是一个完整的独立类
④在本类任意非static的地方都可以new出来,但在第三方必用外部类对象。new的方式产生内部类
Student s = outside.new Student();
⑤静态内部类--特例
在本类任意方法中可new出来,在第三方中药new出来,无需产生外部类对象,只需要用外部类类名. 的方法
二、局部内部类
①不能有访问修饰符
②class文件名:外部列明$序号 内部类.class
③就是一个完整的独立类
④在本类方法里产生对象,在使用
⑤匿名内部类--特例
由于没有类名,所以产生对象的时候用语句告诉JVM他的结构;
并且只能用一次
new Object(){
void hello(){}
}.hello();
这是一个语句,匿名对象.方法名
所有是父类的都可以这样写
Human hu = new Human(){
public void dance(){//重写
}
};//这里有分号,相当于语句
hu.dangce();
文件名:内部类$序号.class
☆三种文件名类型
Out$In.class
Out$1In.class 1,2,3
Out$1.class 1,2,3
时间: 2024-10-13 19:46:51