從以上的分析中可以看出,靜態(tài)內(nèi)部類與非靜態(tài)的內(nèi)部類還是有很大的不同的。一般程序開發(fā)人員可以這么理解,非晶態(tài)的內(nèi)部類對象隱式地在外部類中保存了一個引用,指向創(chuàng)建它的外部類對象。不管這么理解,程序開發(fā)人員都需要牢記靜態(tài)內(nèi)部類與非靜態(tài)內(nèi)部類的差異。如是否可以創(chuàng)建靜態(tài)的成員方法與成員變量(靜態(tài)內(nèi)部類可以創(chuàng)建靜態(tài)的成員而非靜態(tài)的內(nèi)部類不可以)、對于訪問外部類的成員的限制(靜態(tài)內(nèi)部類只可以訪問外部類中的靜態(tài)成員變量與成員方法而非靜態(tài)的內(nèi)部類即可以訪問靜態(tài)的也可以訪問非靜態(tài)的外部類成員方法與成員變量)。這兩個差異是靜態(tài)內(nèi)部類與非靜態(tài)外部類最大的差異,也是靜態(tài)內(nèi)部類之所以存在的原因。了解了這個差異之后,程序開發(fā)人員還需要知道,在什么情況下該使用靜態(tài)內(nèi)部類。如在程序測試的時候,為了避免在各個Java源文件中書寫主方法的代碼,可以將主方法寫入到靜態(tài)內(nèi)部類中,以減少代碼的書寫量,讓代碼更加的簡潔。
總之,靜態(tài)內(nèi)部類在Java語言中是一個很特殊的類,跟普通的靜態(tài)類以及非靜態(tài)的內(nèi)部類都有很大的差異。作為程序開發(fā)人員,必須要知道他們之間的差異,并在實際工作中在合適的地方采用合適的類。不過總的來說,靜態(tài)內(nèi)部類的使用頻率并不是很高。但是在有一些場合,如果沒有這個內(nèi)部靜態(tài)類的話,可能會起到事倍功半的反面效果。
相關(guān)推薦:2009年9月計算機等級考試二級JAVA考前密押卷(1)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |