一、成员内部类
- 成员内部类(对应属性的位置) 分为静态与非静态
- 类内可以定义属性、方法、构造器
- 可以别final、abstract修饰
- 可以调用外部类结构
二、成员内部类实例化及调用外部类的属性或方法
/**
* 动物类
* Animal类是外部类
*/
public class Animal {
String name;
public static void main(String[] args) {
// 实例化静态内部类
Animal.cat cat = new Animal.cat();
// 实例化非静态内部类
// 1. 获取非静态内部类的对象
Animal animal = new Animal();
// 2. 通过对象.new 非静态内部类
Animal.Dog dog = animal.new Dog();
}
// 成员内部类
class Dog {
String name;
public void show(String name) {
System.out.println(name);
// 调用外部类的方法
Animal.this.show(this.name + "成员内部类的属性");
}
}
// 静态内部类型
static class cat {
String name;
}
public void main() {
// 局部内部类
class Horse{
}
}
public void show(String name) {
System.out.println(name);
}
}
局部内部类(对应局部变量) 可以定义在方法、构造器、代码块