内部类

内部类

在方法体或代码块

局部内部类

1、可以访问外部类的所用成员,包括私有的

2、不能添加访问修饰符,因为局部内部类跟局部变量一样,可以加final关键字。

3、作用域:仅仅在定义它的代码块或方法中

4、局部内部类可以直接访问外部类的成员

5、外部类可以通过对象来访问局部内部类(必须在作用域内)

6、外部其他类不能访问局部内部类,因为局部内部类是局部变量

7、如果局部内部类的属性名和外部类相同,遵循就近原则。如果要指定访问外部类的属性,可以用外部类名.this.属性名

匿名内部类

 

1、可以访问外部类的所用成员,包括私有的

2、不能添加访问修饰符,因为局部内部类跟局部变量一样,可以加final关键字。

3、作用域:仅仅在定义它的代码块或方法中

4、局部内部类可以直接访问外部类的成员

5、外部类可以通过对象来访问局部内部类(必须在作用域内)

6、外部其他类不能访问局部内部类,因为局部内部类是局部变量

7、如果局部内部类的属性名和外部类相同,遵循就近原则。如果要指定访问外部类的属性,可以用外部类名.this.属性名

8、匿名内部类使用一次就消失,不能在使用

 

匿名内部类的代码体现

 

创建一个匿名内部类的一个实例化对象,假设为a。在alarmClock方法中,调用了ring()方法,这时候就有动态绑定,更对象a绑定。所以他就会调用匿名内部类中的方法,输出语句。

 

posted @ 2022-09-18 18:56  伤逝l  阅读(43)  评论(0)    收藏  举报