目录
什么是内部类
内部类是类的五大成员之一,先了解类的五大成员
定义:
在一个类的里面,再定义一个类
eg: 在A类的内部定义B类,则B类就称为内部类
补充:类的五大成员
属性、方法(行为)、构造方法(创建对象)、代码块、内部类
内部类的共性:
1.内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的 .clss文件,前面冠以外部类的类名和$符号
2.内部类声明成静态的,就不能随便的访问外部类的成员变量了,此时内部类只能访问外部类的静态成员变量。
3.内部类不能用普通的方式访问。
4.外部类不能直接访问内部类的的成员,但可以通过内部类对象来访问
成员内部类:
写在成员位置【类中方法外】 属于外部类的成员
成员内部类代码如何书写
1.和外部的成员变量和成员放法的地位是一样的,可以被一些修饰符修饰的【private、public 、默认【本包】、protected【本包+子类】等 】
2.若将内部类Engine的修饰符修饰为 private 私有的,外界就不能直接创建成员内部类的对象,仅仅只能在外部类的里面创建。
3.在成员内部类中 ,JDK16之前不能定义静态变量,JDK16之后才可以
若被为private修饰,外部访问不到
如何创建成员内部类的对象
方式一:在外部类中编写方法,对外提供内部类的对象
场景:使用private修饰的内部类中
eg:一般在阅读源码中应用
方式二:在外界直接创建
格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象。
成员内部类如何获取外部类的成员变量 :
Outer.this.变量名
eg: