Detailed Java inner class
An inner class is a class that defines a class in another class, and is called an inner class. Internal classes can be divided into named internal classes and anonymous internal classes . As the name implies, famous internal classes have their own class names, and anonymous internal classes have no class names.
Famous inner class
public class Body{
//有名内部类
class Heart{
public void work() {
System.out.println("心脏在跳动");
}
}
{
//调用内部类方法1,new前面隐藏关键字this,代指body
Heart heart = new Heart();
}
public static void main(String[] args) {
Body body = new Body();
//调用内部类方法2,必须指明哪个类调用的
Heart heart = body.new Heart();
heart.work();
}
}
Anonymous inner class: mainly used for rewriting
public class Body{
//匿名内部类
static Mammal mammal = new Mammal(){
@Override
public void move() {//重写Mammal中的move方法
System.out.println("鲸鱼在游动");
}
};
public static void main(String[] args) {
mammal.move();
}
}
Note :
- After the class files compiled into ordinary class name .class
- After the famous inner class files compiled for the class name inside the class name $ .class
- After an anonymous inner class files compiled for the class name $ value .class