外部类、内部类以及匿名内部内

"纸上得来终觉浅,绝知此事要躬行"

1、外部类

image

2、内部类:

note:
以下所称的外部类是相对于本类内部的类来说的,并不是上面所说的外部类!!

在本类的内部进行其他类结构的嵌套操作

  • 可以被访问权限修饰符修饰
  • 内部类能放啥??
    不能放静态方法,可以继承,可以实现接口,静态的东西写不了!!!
  • 静态内部类能放啥?? 非静态结构、静态结构也能放(包括main方法)

2.1 实例内部类

image

2.2 静态内部类

image

2.3 内部类实例创建

// 测试类

2.3.1 实例内部类造对象

Inner inner = new Inner(); ---报错!!!
image

2.3.2 静态内部类造对象

image

2.2 内部类的访问特点

  • 内部类的方法里可以直接访问外部类的成员,包括私有成员
  • 外部类要访问内部类成员,必须要建立内部类对象

image
例如:
image

3、匿名内部类

就是内部类的简化
它的本质就是一个父类或负接口的匿名子类实现

3.1 使用前提

这个类必须继承一个父类或实现一个父接口

3.2 在哪用

当使用接口,先定义一个接口,接下来

  • 定义接口实现类(子类)
  • 在子类中重写接口抽象方法
  • 创建实现类对象
  • 调用重写的后方法

匿名内部类就是把这四步合一了 !!!

3.3 长啥样

点击查看代码
new 父类名或接口名(){
//方法重写
@Override
pubilc void methd(){
//执行语句
}
};

3.4 使用

image
image

3.5 注意事项:

  • 匿名内部类不能定义静态成员。
  • 匿名内部类不能再抽象方法
    因为它自己就是实现抽象类的

4、局部内部类

定义在方法或代码块中

导图

image

posted @ 2022-07-28 19:12  来日可追  阅读(127)  评论(0编辑  收藏  举报