一、成员内部类
1.1 定义格式
class 外部类{
修饰符 class 内部类{
//其他代码
}
}
1.2 访问方式
外部类.内部类 变量 = new 外部类().new 内部类();
1.3 演示
1.3.1 定义类
class Body {//外部类,身体
private boolean life= true; //生命状态
public class Heart { //内部类,心脏
public void jump() {
System.out.println("心脏噗通噗通的跳")
System.out.println("生命状态" + life); //访问外部类成员变量
}
}
}
1.3.2 访问内部类
public static void main(String[] args) {
//创建内部类对象
Body.Heart bh = new Body().new Heart();
//调用内部类中的方法
bh.jump();
}
二、局部内部类
2.1 定义格式
class 外部类{
修饰符 返回值类型 方法名(参数) {
class 内部类{
//其他代码
}
}
}
2.2 访问方式
在外部类方法中,创建内部类对象,进行访问
2.3 演示
2.3.1 定义类
class Party {//外部类,聚会
public void puffBall(){//吹气球方法
class Ball {//内部类,气球
public void puff(){
System.out.println("气球膨胀了");
}
}
//创建内部类对象,调用puff方法
new Ball().puff();
}
}
2.3.2 访问内部类
public static void main(String[] args) {
//创建外部类对象
Party p = new Party();
//调用外部类中的puffBall方法
p.puffBall();
}
三、匿名内部类
3.1 内部类的实际使用——匿名内部类
3.2 作用:
匿名内部类是创建某个类型子类对象的快捷方式。
3.3 格式:
new 父类或接口(){
//进行方法重写
};
3.4 演示
匿名内部类如果不定义变量引用,则也是匿名对象。代码如下: