- 系 統(tǒng)
- 進(jìn)階教程
- 微軟認(rèn)證
- Win7/WinX
- 優(yōu)化
- 系統(tǒng)故障
- Windows NT
- 社區(qū)
|
JAVA從JDK1.1開始引入了內(nèi)部類,可以參見代碼,感覺好處就是設(shè)計類的時候可以偷懶,呵呵。主要是可以引用類的內(nèi)部其他元素,差不多是把這個內(nèi)部類當(dāng)成原類的元素。還有可以隱藏類的一些設(shè)計細(xì)節(jié),好處還是很多的。 定義兩個接口 package interfacepackage; public interface Destination { String readLabel(); } package interfacepackage; public interface Contents { int value(); } 一個類,并且加有測試代碼 package debug; import interfacepackage.Contents; import interfacepackage.Destination; public class Tester { private int valueRate = 2; private class PContent implements Contents { private int i = 11 * valueRate; public int value() { return i; } } protected class PDestination implements Destination { private String label; private PDestination(String whereTo) { label = whereTo; } public String readLabel() { return label; } } public Destination dest(String s) { return new PDestination(s); } public Contents cont() { return new PContent(); } public static void main(String args[]) { Tester p = new Tester(); Contents c = p.cont(); System.out.println(c.value()); Destination d = p.dest("天外水火"); System.out.println(d.readLabel()); System.out.println("done"); } } 上面的代碼是內(nèi)部動態(tài)類,那么內(nèi)部靜態(tài)類是否也可以呢?答案是可以的,但是靜態(tài)內(nèi)部類是無法引用類的其他非靜態(tài)元素的,例如上例中的PContent 內(nèi)部類如果改為static類,是無法引用valueRate 屬性的,這樣是會報編譯錯誤的,但是如果valueRate 如果也改為static是可以運行的。 |