*成员内部类:应用率不高,了解一下就可以
1.类中套类,外面的类成为Outer外部类,里面的类成为Inner内部类
2.内部类通常只服务于外部类,对外(其他类)不具备可见性
3.内部类对象通常是在外部类中创建的
4.内部类中可以直接访问外部类的成员(包括私有的)
内部类中有个隐式的引用指向了创建它的外部类对象 eg:外部类名.this
例:
Aoo o1 = new Aoo(); //正确
//Boo o2 = new Boo(); //编译错误,内部类对外不具备可见性
class Aoo{
private int a;
void show(){
Boo o1 = new Boo();//正确,内部类只能通过外部类王访问
}
class Boo{
void test(){
System.out.println(a); //正确,可以访问外部类的私有变量
System.out.println(Aoo.this.a); //正确
System.out.println(this.a); //错误
}
}
}
*匿名内部类:
1.若想创建一个类(派生类)的对象,并且对象植被创建一次,
此时该类不必命名,成为匿名内部类
2.jdk1.7(含1.7)之前,想访问匿名内部类外的变量,该变量必须是final的