class 外部类{
修饰符 class 内部类{
//其他代码
}
}
?外部类.内部类 变量 = new 外部类().new 内部类();
class Body {//外部类,身体
private boolean life= true; //生命状态
public class Heart { //内部类,心脏
public void jump() {
System.out.println("心脏噗通噗通的跳")
System.out.println("生命状态" + life); //访问外部类成员变量
}
}
}
public static void main(String[] args) {
//创建内部类对象
Body.Heart bh = new Body().new Heart();
//调用内部类中的方法
bh.jump();
}
class 外部类{
修饰符 返回值类型 方法名(参数) {
class 内部类{
//其他代码
}
}
}
在外部类方法中,创建内部类对象,进行访问
class Party {//外部类,聚会
public void puffBall(){//吹气球方法
class Ball {//内部类,气球
public void puff(){
System.out.println("气球膨胀了");
}
}
//创建内部类对象,调用puff方法
new Ball().puff();
}
}
public static void main(String[] args) {
//创建外部类对象
Party p = new Party();
//调用外部类中的puffBall方法
p.puffBall();
}
?匿名内部类是创建某个类型子类对象的快捷方式。
new 父类或接口(){
//进行方法重写
};
匿名内部类如果不定义变量引用,则也是匿名对象。代码如下:
原文:https://www.cnblogs.com/nadou/p/13970364.html