成员内部类
理解:
- 可以调用外部类的结构
- 可以被
static
修饰 - 可以被4中不同的权限修饰
- 类中可以定义属性、方法、构造器
- 可以被
final
修饰,表示此类不能被继承 - 可以被
abstract
修饰
创建成员内部类的对象:
//创建Dog实例(静态的成员内部类):
Person.Dog dog = new Person.Dog();
dog.show();
//创建Bird实例(非静态的成员内部类):
Person p = new Person();
Person.Bird bird = p.new Bird();
在成员内部类中调用外部类的结构:
class Person{
String name = "小明";
int age;
public void eat(){}
//静态成员内部类
static class Dog{
String name;
}
//非静态成员内部类
class Bird{
String name = "杜鹃";
public void display(String name){
System.out.println(name);//方法的形参
System.out.println(this.name);//内部类的属性
System.out.println(Person.this.name);//外部类的属性
Person.this.eat();
}
}
}
局部内部类的使用:
//返回一个实现了Comparable接口的类的对象
public Comparable getComparable(){
//创建一个实现了Comparable接口的类:局部内部类
/*方式一:
class MyComparable implements Comparable{
@Override
public int compareTo(Object o) {
return 0;
}
}
return new MyComparable();*/
//方式二:
return new Comparable(){
@Override
public int compareTo(Object o) {
return 0;
}
};
}