实例化成员内部类
- 实例化成员内部类:
//创建静态内部类实例
Person.Dog dog = new Person.Dog();
dog.Show();
//创建非静态内部类实例
Person person = new Person();
Person.Bird bird = person.new Bird();
bird.Sing();
- 如何在成员内部类中区分调用外部类的结构?
class Bird{
String name="杜鹃";
public void Sing(){
System.out.println("我是一只小小鸟");
}
public void display(String name){
System.out.println(name); //形参的name
System.out.println(this.name); //内部类Bird的name
System.out.println(Person.this.name); //外部类Person的name
}
}
- 开发中局部内部类的使用
//方式一
public Comparable get(){
// class Mylei implements Comparable{
//
// @Override
// public int compareTo(Object o) {
// return 0;
// }
// }
// return new Mylei();
//方式二:
return new Comparable() {
@Override
public int compareTo(Object o) {
return 0;
}
};
}
-
在局部内部类的方法中,如果调用的是局部内部类所在的方法中的局部变量的话,要求此局部变量声明为final的!
-
JDK7之前,需要声明为final,JDK8及以后,可以省略!