更多信息請訪問:考試吧計算機類論壇
在開發(fā)過程中,內(nèi)部類中使用的最多的還是非靜態(tài)地成員內(nèi)部類。不過在特定的情況下,靜態(tài)內(nèi)部類也能夠發(fā)揮其獨特的作用。
一、靜態(tài)內(nèi)部類的使用目的。
在定義內(nèi)部類的時候,可以在其前面加上一個權(quán)限修飾符static。此時這個內(nèi)部類就變?yōu)榱遂o態(tài)內(nèi)部類。不過由于種種的原因,如使用上的限制等等因素(具體的使用限制,筆者在下面的內(nèi)容中會詳細闡述),在實際工作中用的并不是很多。但是并不是說其沒有價值。在某些特殊的情況下,少了這個靜態(tài)內(nèi)部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設(shè)置一個主方法(主方法是某個應(yīng)用程序的入口,必須具有),那么會出現(xiàn)很多額外的代碼。而且最主要的時這段主程序的代碼對于Java文件來說,只是一個形式,其本身并不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態(tài)內(nèi)部類中,從而不用為每個Java源文件都設(shè)置一個類似的主方法。這對于代碼測試是非常有用的。在一些中大型的應(yīng)用程序開發(fā)中,則是一個常用的技術(shù)手段。為此,這個靜態(tài)內(nèi)部類雖然不怎么常用,但是程序開發(fā)人員還必須要掌握它。也許在某個關(guān)鍵的時刻,其還可以發(fā)揮巨大的作用也說不定。
二、靜態(tài)內(nèi)部類的使用限制。
將某個內(nèi)部類定義為靜態(tài)類,跟將其他類定義為靜態(tài)類的方法基本相同,引用規(guī)則也基本一致。不過其細節(jié)方面仍然有很大的不同。具體來說,主要有如下幾個地方要引起各位程序開發(fā)人員的注意。
一是靜態(tài)成員(包括靜態(tài)變量與靜態(tài)成員)的定義。一般情況下,如果一個內(nèi)部類不是被定義成靜態(tài)內(nèi)部類,那么在定義成員變量或者成員方法的時候,是不能夠被定義成靜態(tài)成員變量與靜態(tài)成員方法的。也就是說,在非靜態(tài)內(nèi)部類中不可以聲明靜態(tài)成員。如現(xiàn)在在一個student類中定義了一個內(nèi)部類 age,如果沒有將這個類利用static關(guān)鍵字修飾,即沒有定義為靜態(tài)類,那么在這個內(nèi)部類中如果要利用static關(guān)鍵字來修飾某個成員方法或者成員變量是不允許的。在編譯的時候就通不過。故程序開發(fā)人員需要注意,只有將某個內(nèi)部類修飾為靜態(tài)類,然后才能夠在這個類中定義靜態(tài)的成員變量與成員方法。這是靜態(tài)內(nèi)部類都有的一個特性。也正是因為這個原因,有時候少了這個靜態(tài)的內(nèi)部類,很多工作就無法完成;蛘哒f要繞一個大圈才能夠?qū)崿F(xiàn)某個用戶的需求。這也是靜態(tài)的內(nèi)部類之所以要存在的一個重要原因。
相關(guān)推薦:2009年9月計算機等級考試二級JAVA考前密押卷(1)北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |