Inner Class 内部类

成员

1
2
3
4
class Outer {
class Inner {
}
}

外部直接创建成员内部类:

1
Outer.Inner a = new Outer().new Inner();

成员内部类里,JDK16开始支持定义静态变量,之前的版本不支持

调用外部对象的成员变量:

1
2
3
4
5
6
7
8
class Outer {
private int age = 10;
class Inner {
public void met() {
Outer.this.age = 20;
}
}
}

Outer.this 外部对象

静态

static 成员内部类

静态内只能访问静态

局部

方法内的内部类

类似局部变量,基本用不到

1
2
3
4
5
6
class Outer {
public void met() {
class Inner {
}
}
}

匿名内部类

继承父类、实现接口

1
2
3
4
5
new 父类/接口() {
public void display() {
@Override
}
};