内部类
2025年3月26日大约 1 分钟
内部类
- 如果一个类定义在另一个类的内部,这个类就是内部类
- 代码块是类的五大成分之一(成员变量、构造器、方法、代码块、内部类)
- 应用场景:当一个类的内部包含一个完整的事务,且事务没必要单独设计,就可以设计为内部类
成员内部类(略)
- 就是类中的普通成员,属于外部类的对象
- 使用方法:
外部类对象.内部类对象 对象名 = new 外部类名称().new 内部类名称();
- 特点:
- 成员内部类可以直接访问外部类的静态成员
- 可以直接访问外部类的实例成员
- 在成员内部类的实例方法中,可以直接拿到外部类对象
- 格式:
外部类名.this
- 格式:
public class Outer {
// 成员内部类
public class Inner {
public void test() {
System.out.print("测试");
}
// 内部类访问外部类对象
Outer.this
}
}
静态内部类(略)
局部内部类(略)
匿名内部类(重点)
- 匿名内部类就是没有名字的内部类,默认有隐藏的名字
- 格式:
new 类或接口(参数值,...){ (一般是重写方法) ... }
- 特点:匿名内部类本质就是一个子类,并且立即会创建一个子类对象
- 匿名内部类实际有名字: 外部类名$编号.class
- 作用:用于方便地创建子类对象,一般用于创建接口或抽象类的子类对象
public class Test {
// 匿名内部类
People p = new People() {
@Override
public void speak() {
System.out.println("test");
}
}
}