内部类就是在一个类的内部定义一个类,比如,A类中定义一个B类,那么B类相对于A类来说就称为内部类,而A类相对于B类来说就是外部类。
成员内部类
私有的内部类只能在当前的外部类中使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| public class Dog { public String name; public int age; public String sex; public String weight;
public void eat() { System.out.println("狗吃骨头"); }
public void f() { System.out.println(money); study();
System.out.println(Person.this.name); System.out.println(name);
Person.this.eat(); eat(); } }
|
1 2 3 4
| Person p = new Person();
Person.Dog dog = p.new Dog();
|
静态内部类
静态内部类中可以定义静态的成员
静态内部类中并不能访问外部类中的非静态成员
1 2
| Person.Cat cat = new Person.Cat();
|
局部内部类
定义在方法里面,很少见作为了解
局部内部类只在当前方法有效
匿名内部类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
Animal animal = new Animal() {
@Override public void eat() { System.out.println("吃东西"); } };
animal.eat();
|