- 可以將一個(gè)類的定義放在另一個(gè)類的定義內(nèi)部,這就是內(nèi)部類
一浴骂、創(chuàng)建內(nèi)部類
外部類將有一個(gè)方法乓土,該方法返回一個(gè)指向內(nèi)部類的引用。
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){ //返回內(nèi)部類的引用
return new Destination(s);
}
public Contents contents(){ //返回內(nèi)部類的引用
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(); //創(chuàng)建內(nèi)部類對象
Parcel2.Destination d = q.to("Borneo");
}
}
二、鏈接到外部類
- 內(nèi)部類對象能夠訪問外圍對象的所有成員趣苏。內(nèi)部類擁有外圍類所有元素的訪問權(quán)狡相。
三、使用 .this 和 .new
對外部類對象的引用: 外部類名.this
創(chuàng)建某個(gè)內(nèi)部類對象: 外部類對象.new 內(nèi)部類構(gòu)造器
- 當(dāng)想直接創(chuàng)建內(nèi)部類對象時(shí)食磕,不能直接創(chuàng)建尽棕,而是必須使用外部類對象來創(chuàng)建內(nèi)部類對象
四、內(nèi)部類與向上轉(zhuǎn)型
- 內(nèi)部類繼承自接口彬伦,
五滔悉、在方法和作用域內(nèi)的內(nèi)部類
+1、在方法的作用域內(nèi)創(chuàng)建一個(gè)完整的類单绑,這被成為局部內(nèi)部類