2.6 Java之内部类(匿名内部类)

内部类举例

这里写图片描述
枚举类是线程类的内部类,表明线程的生命周期


内部类概述

这里写图片描述
这里写图片描述

要点:

  • 方法和属性的权限修饰符有四种
  • 外部类只有两种权限修饰符,而内部类作为成员有四种
  • static不能修饰外部类,但能修饰内部类
  • 静态结构:类创建,静态结构随之创建
  • 非静态结构:创建对象后才加载非静态结构

重名变量的区分

这里写图片描述
第一个为形参,毋庸置疑
第二个因为this表示调用该方法的对象,即bird,所以是bird的属性
第三个直接指明person类的属性


内部类练习1

这里写图片描述

  • 一个通过外部类调用构造器,一个通过外部类对象调用构造器
  • 关注写法,谁在调用
    这里写图片描述

  • dog类为静态类–》内部的结构(构造器)也是静态的

匿名内部类

局部内部类的使用:
返回实现接口的对象

使用方法一

这里写图片描述
创建实现接口的类,返回类的对象

使用方法二

这里写图片描述
书写小技巧
这里写图片描述
注:

  • 一般new+构造器,但此处由于没有类名
    用接口名替代,并不能说明接口有构造器

匿名内部类总结

接口Product

这里写图片描述


show方法(测试类TestProduct内定义)
这里写图片描述
形参为接口,可传入接口实现类的对象,将创建对象的实体的首地址值给引用p


测试类TestProduct

这里写图片描述

接口的一般使用方法

见上图
- 方式一:类和对象都有名字
- 方式二:只有创建的对象有引用名
- 方式三:类和对象都没有名字

局部内部类

(测试类TestProduct的方法内定义)

方法一

这里写图片描述

方法二

这里写图片描述

调用局部内部类(测试类TestProduct内)

这里写图片描述
t是测试类TestProduct的对象

猜你喜欢

转载自blog.csdn.net/lwz45698752/article/details/81228371