1.什么是内部类
将一个类A定义在另一个B类中,里面的那个类A就称为内部类,B称为外部类;
2.为什么声明内部类
当一个事物内部,还需要一个完整的结构进行描述,而这个完整结构只为外部事物提供服务,不在其他地方单独使用。那么完整的结构最好使用内部类。
3.语法
public class Person {
private boolean live = true;
class Heart {
public void jump() {
// 直接访问外部类成员
if (live) {
System.out.println("心脏在跳动");
} else {
System.out.println("心脏不跳了");
}
}
}
public boolean isLive() {
return live;
}
public void setLive(boolean live) {
this.live = live;
}
}
// 测试类
public class InnerDemo {
public static void main(String[] args) {
// 创建外部类对象
Person p = new Person();
// 创建内部类对象
Heart heart = p.new Heart();
// 调用内部类方法
heart.jump();
// 调用外部类方法
p.setLive(false);
// 调用内部类方法
heart.jump();
}
}
输出结果:
心脏在跳动
心脏不跳了