----->内部类: 在类中在定义类称为内部类,一个类中,可以定义多个内部类
内部类访问规则:
1.内部类可以直接访问外部类中的成员,包括私有。
因为内部类中成员持有一个外部类的引用,格式:外部类.this
2.外部类要访问内部类的成员,要先创建内部类对象。
外部类其他类访问内部类:
格式:外部类.内部类 变量名 = new 外部类().new 内部类();
类B是类A的内部类,在类C中访问内部类:A.B ab = new A().new B();
内部类定义在成员的位置上时(成员内部类):
1.可以被private 修饰
2.可以被static 修饰
如果内部类定义在局部位置上时(局部内部类):
1.可以直接访问外部类成员
2.不能被成员修饰符修饰
3.不能访问所在局部的变量
4.可以访问所在局部的final变量
当事务内部还有事务,可以设计为内部类
匿名内部类:--->
1.匿名内部类是内部类的简写格式
2.定义匿名内部类的前提:
内部类必须是继承一个类或者接口
3.匿名内部类格式: new 父类或接口(){定义子类内容}
4.匿名内部类是一个匿名子类的对象
Class A{
void meth(){
//1.直接调成员
new B(){ //此为匿名内部类,B是父类
void show(){ //show为重写父类的方法
}.show(); //.show(),调用匿名内部类的show方法
}
//2.给匿名内部类起名字,再调用
B b = new B(){
void show(){
}
}
b.show(); //.show(),调用匿名内部类的show方法
}
} |
|