- 可以将一个类的定义放在另一个类的定义内部,这就是内部类
一、创建内部类
外部类将有一个方法,该方法返回一个指向内部类的引用。
public class Parcel2 {
class Contents{
private int i = 11;
public int value(){
return i;
}
}
class Destination{
private String label;
public Destination(String whereTo) {
label = whereTo;
}
String readLabel(){
return label;
}
}
public Destination to(String s){ //返回内部类的引用
return new Destination(s);
}
public Contents contents(){ //返回内部类的引用
return new Contents();
}
public void ship(String dest){
Contents c = new Contents();
Destination d = new Destination(dest);
System.out.println(d.readLabel());
}
public static void main(String[] args) {
Parcel2 p = new Parcel2();
p.ship("Tasmaina");
Parcel2 q = new Parcel2();
Parcel2.Contents c = q.contents(); //创建内部类对象
Parcel2.Destination d = q.to("Borneo");
}
}
二、链接到外部类
- 内部类对象能够访问外围对象的所有成员。内部类拥有外围类所有元素的访问权。
三、使用 .this 和 .new
对外部类对象的引用: 外部类名.this
创建某个内部类对象: 外部类对象.new 内部类构造器
- 当想直接创建内部类对象时,不能直接创建,而是必须使用外部类对象来创建内部类对象
四、内部类与向上转型
- 内部类继承自接口,
五、在方法和作用域内的内部类
+1、在方法的作用域内创建一个完整的类,这被成为局部内部类