内部类、匿名内部类
内部类、匿名内部类
2019年10月23日
5:45
内部类:
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)
访问特点:
内部类可以直接访问外部类中的成员,包括私有成员
而外部类要访问内部类中的成员必须要建立内部类的对象
内部类可以直接访问外部类中成员,是因为内部类自动持有了外部类的引用—— 外部类名.this.成员变量
其他类访问外部类中内部类的成员
如果是其他类,要想访问内部类,肯定是要先建立内部对象的
而且要通过外部类.内部类进行指定
——————————————————————————————
匿名内部类
匿名内部类。就是内部类的简写格式。
有必须前提:
内部类必须继承或者实现一个外部类或者接口。
匿名内部类,其实就是一个匿名子类对象。
格式:new 父类 or 接口 {}{子类内容}
代码实现:
New 的左边是可以被命名的,以接口/父类 实例化对象的形式。
代码实现2:
使用匿名内部类的写法:
用内部类的写法:
相同的代码调用…
匿名内部类的使用场景:
通常的使用场景之一:
当函数参数是接口类型时,而且接口中的方法不超过三个。
可以用匿名内部类作为实际参数进行传递
正常写法
替换成匿名内部类
已使用 Microsoft OneNote 2013 创建。