1.内部类就是在其他类中定义的类:
*编译器会将其生成为xxx$xxx这样的class文件
*内部类不能够与外部类同名
内部类的使用:
*再封装他的类的内部类使用内部类与普通类的使用方式相同。
*在其他地方使用:
类名前面加上外部类的名字
在用new创建内部类时,也要在new前面加上对象变量例如:
class Parcel{
private Contents c;
private Destination d;
class Contents{
private int i;
Contents(int i){this.i=i;}
int value(){return i;}
}
class Destinsation{
private String label;
Destination(String whereTo){label = whereTo;}
}
}
class Test{
public static void main(){
Parcel p =new Parcel();
Parcel.Contents c = p.new.Contents(2);
}
}
2.内部类使用外部类中的成员:
*内部类中可以直接访问外部类的字段和方法
*如果使用内部类中有与外部类同名的字段和方法则可以用
外部类.this.字段以及方法
class A{
private int s =1;
public class B{
private int s =2;
public void m(s){
System.out.println(s);//局部变量
System.out.println(this.s);//内部类对象的属性
System.out.println(A.this.s);//外层类对象的属性
}
}
}