内部类
- 将类A定义在另一个类B里面,A称为内部类(InnerClass),类B为外部类(Outer Class)
举例
- Thread类内部声明了State类,表示线程的生命周期
- HashMap类中声明了Node类,表示封装key和value
分类
- 成员内部类:直接声明在外部类的里面
- 使用static修饰的,静态的成员内部类
- 不使用static修饰的,非静态的成员内部类
- 局部内部类:声明在方法内、构造器内、代码块内的内部类
public class OuterClassTest {
public static void main(String[] args) {
Person.Dog dog = new Person.Dog();
Person person = new Person();
Person.Bird bird = person.new Bird();
bird.eat();
bird.show("秃鹫");
bird.show1();
}
}
class Person {
String name = "edison";
int age = 1;
static class Dog {
public void eat() {
System.out.println("狗改不了吃粑粑");
}
}
class Bird