亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Java > 正文

java中staticclass靜態類詳解

2024-07-13 10:14:17
字體:
來源:轉載
供稿:網友

一般情況下是不可以用static修飾類的。如果一定要用static修飾類的話,通常static修飾的是匿名內部類。

在一個類中創建另外一個類,叫做成員內部類。這個成員內部類可以靜態的(利用static關鍵字修飾),也可以是非靜態的。由于靜態的內部類在定義、使用的時候會有種種的限制。所以在實際工作中用到的并不多。

在開發過程中,內部類中使用的最多的還是非靜態地成員內部類。不過在特定的情況下,靜態內部類也能夠發揮其獨特的作用。

一、靜態內部類的使用目的。

在定義內部類的時候,可以在其前面加上一個權限修飾符static。此時這個內部類就變為了靜態內部類。不過由于種種的原因,如使用上的限制等等因素(具體的使用限制,筆者在下面的內容中會詳細闡述),在實際工作中用的并不是很多。但是并不是說其沒有價值。在某些特殊的情況下,少了這個靜態內部類還真是不行。如在進行代碼程序測試的時候,如果在每一個Java源文件中都設置一個主方法(主方法是某個應用程序的入口,必須具有),那么會出現很多額外的代碼。而且最主要的時這段主程序的代碼對于Java文件來說,只是一個形式,其本身并不需要這種主方法。但是少了這個主方法又是萬萬不行的。在這種情況下,就可以將主方法寫入到靜態內部類中,從而不用為每個Java源文件都設置一個類似的主方法。這對于代碼測試是非常有用的。在一些中大型的應用程序開發中,則是一個常用的技術手段。為此,這個靜態內部類雖然不怎么常用,但是程序開發人員還必須要掌握它。也許在某個關鍵的時刻,其還可以發揮巨大的作用也說不定。

class="jb51code">
public class MainInStaticClass {	static class Main{		static void main() {			//將主方法寫到靜態內部類中,從而不必為每個源文件都這種一個類似的主方法			new MainInStaticClass().print();		}	}	public static void main(String[] args){		new MainInStaticClass().print();	}	public void print(){		System.out.println("main in static inner class");	}}public class TestMain {	public static void main(String[] args) {		// TODO Auto-generated method stub		// new MainInStaticClass().print();		MainInStaticClass.Main.main();		new MainInStaticClass.Main();	}}

二、靜態內部類的使用限制。

將某個內部類定義為靜態類,跟將其他類定義為靜態類的方法基本相同,引用規則也基本一致。不過其細節方面仍然有很大的不同。具體來說,主要有如下幾個地方要引起各位程序開發人員的注意。

一是靜態成員(包括靜態變量與靜態成員)的定義。一般情況下,如果一個內部類不是被定義成靜態內部類,那么在定義成員變量或者成員方法的時候,是不能夠被定義成靜態成員變量與靜態成員方法的。也就是說,在非靜態內部類中不可以聲明靜態成員。如現在在一個student類中定義了一個內部類age,如果沒有將這個類利用static關鍵字修飾,即沒有定義為靜態類,那么在這個內部類中如果要利用static關鍵字來修飾某個成員方法或者成員變量是不允許的。在編譯的時候就通不過。故程序開發人員需要注意,只有將某個內部類修飾為靜態類,然后才能夠在這個類中定義靜態的成員變量與成員方法。這是靜態內部類都有的一個特性。也正是因為這個原因,有時候少了這個靜態的內部類,很多工作就無法完成。或者說要繞一個大圈才能夠實現某個用戶的需求。這也是靜態的內部類之所以要存在的一個重要原因。

二是在成員的引用上,有比較大的限制。一般的非靜態內部類,可以隨意的訪問外部類中的成員變量與成員方法。即使這些成員方法被修飾為private(私有的成員變量或者方法),其非靜態內部類都可以隨意的訪問。則是非靜態內部類的特權。因為在其他類中是無法訪問被定義為私有的成員變量或則方法。但是如果一個內部類被定義為靜態的,那么在銀用外部類的成員方法或則成員變量的時候,就會有諸多的限制。如不能夠從靜態內部類的對象中訪問外部類的非靜態成員(包括成員變量與成員方法)。這是什么意思呢?如果在外部類中定義了兩個變量,一個是非靜態的變量,一個是靜態的變量。那么在靜態內部類中,無論在成員方法內部還是在其他地方,都只能夠引用外部類中的靜態的變量,而不能夠訪問非靜態的變量。在靜態內部類中,可以定義靜態的方法(也只有在靜態的內部類中可以定義靜態的方法),在靜態方法中引用外部類的成員。但是無論在內部類的什么地方引用,有一個共同點,即都只能夠引用外部類中的靜態成員方法或者成員變量。對于那些非靜態的成員變量與成員方法,在靜態內部類中是無法訪問的。這就是靜態內部類的最大使用限制。在普通的非靜態內部類中是沒有這個限制的。也正是這個原因,決定了靜態內部類只應用在一些特定的場合。其應用范圍遠遠沒有像非靜態的內部類那樣廣泛。

三是在創建靜態內部類時不需要將靜態內部類的實例綁定在外部類的實例上。

通常情況下,在一個類中創建成員內部類的時候,有一個強制性的規定,即內部類的實例一定要綁定在外部類的實例中。也就是說,在創建內部類之前要先在外部類中要利用new關鍵字來創建這個內部類的對象。如此的話如果從外部類中初始化一個內部類對象,那么內部類對象就會綁定在外部類對象上。也就是說,普通非靜態內部類的對象是依附在外部類對象之中的。但是,如果成員開發人員創建的時靜態內部類,那么這就又另當別論了。通常情況下,程序員在定義靜態內部類的時候,是不需要定義綁定在外部類的實例上的。也就是說,要在一個外部類中定義一個靜態的內部類,不需要利用關鍵字new來創建內部類的實例。即在創建靜態類內部對象時,不需要其外部類的對象。

newMainInStaticClass.Main();

具體為什么會這樣,一般程序開發人員不需要了解這么深入,只需要記住有這個規則即可。在定義靜態內部類的時候,千萬不要犯畫蛇添足的錯誤。

從以上的分析中可以看出,靜態內部類與非靜態的內部類還是有很大的不同的。一般程序開發人員可以這么理解,非靜態的內部類對象隱式地在外部類中保存了一個引用,指向創建它的外部類對象。不管這么理解,程序開發人員都需要牢記靜態內部類與非靜態內部類的差異。如是否可以創建靜態的成員方法與成員變量(靜態內部類可以創建靜態的成員而非靜態的內部類不可以)、對于訪問外部類的成員的限制(靜態內部類只可以訪問外部類中的靜態成員變量與成員方法而非靜態的內部類即可以訪問靜態的也可以訪問非靜態的外部類成員方法與成員變量)。這兩個差異是靜態內部類與非靜態外部類最大的差異,也是靜態內部類之所以存在的原因。了解了這個差異之后,程序開發人員還需要知道,在什么情況下該使用靜態內部類。如在程序測試的時候,為了避免在各個Java源文件中書寫主方法的代碼,可以將主方法寫入到靜態內部類中,以減少代碼的書寫量,讓代碼更加的簡潔。

總之,靜態內部類在Java語言中是一個很特殊的類,跟普通的靜態類以及非靜態的內部類都有很大的差異。作為程序開發人員,必須要知道他們之間的差異,并在實際工作中在合適的地方采用合適的類。不過總的來說,靜態內部類的使用頻率并不是很高。但是在有一些場合,如果沒有這個內部靜態類的話,可能會起到事倍功半的反面效果

三、實例化

看了以上內容后,下面我整體測試了一下:

首先大家需要明白,靜態內部類只是不依附與外部類,它里面的變量和方法也沒有說一定得是靜態的,下面拿代碼說事:

public class Test {	public static void main(String[] args){		MyInnerStaticClass inner=new MyInnerStaticClass();		inner.a=10;		inner.b="abc";		System.out.println(inner.a+" "+inner.b);	}	static class MyInnerStaticClass{		int a;		String b;	}}
public class Test {	public static void main(String[] args){		MyInnerStaticClass inner=new MyInnerStaticClass();		inner.a=10;		inner.b="abc";		System.out.println(inner.a+" "+inner.b);	}	static class MyInnerStaticClass{		int a;		String b;	}}

上述代碼將靜態匿名類用new實例化了,運行后輸入10 abc,正確!

總結

以上就是本文關于java中staticclass靜態類詳解的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本大道亚洲视频| 欧美精品久久久久a| 亚洲春色另类小说| 成人在线视频福利| 66m—66摸成人免费视频| 日韩欧美高清视频| 在线视频欧美日韩精品| 国产性猛交xxxx免费看久久| 国产一区视频在线播放| 久青草国产97香蕉在线视频| 国产一区二区三区三区在线观看| 欧美专区国产专区| 亚洲精品av在线| 国产精品成人v| 亚洲激情在线观看视频免费| 国产精品久久久久久久app| 久久躁日日躁aaaaxxxx| 中文字幕精品影院| 国产精品精品一区二区三区午夜版| 欧美性猛交xxxx富婆| 日韩av片电影专区| 欧美黄色免费网站| 亚洲欧美中文另类| 国产成人短视频| 精品亚洲一区二区三区在线播放| 欧美在线免费观看| 日韩av片电影专区| 日韩电影中文字幕一区| 国产精品444| 久久久久久久国产精品视频| 久久久久久国产| 亚洲一区二区久久久| 中文字幕在线观看日韩| 国内精品一区二区三区四区| 在线日韩第一页| 亚洲毛片在线观看.| 夜夜狂射影院欧美极品| 91po在线观看91精品国产性色| 欧美一级电影免费在线观看| 久久亚洲精品小早川怜子66| 97久久超碰福利国产精品…| 日韩av影视综合网| 78m国产成人精品视频| 国产日韩欧美另类| 国产欧美精品一区二区三区-老狼| 久久精品视频免费播放| 亚洲高清色综合| 精品国产欧美成人夜夜嗨| 国产亚洲人成a一在线v站| 欧美日韩aaaa| 国产一区在线播放| 国内揄拍国内精品少妇国语| 欧美日韩国产激情| 欧美成人免费一级人片100| 中文字幕在线看视频国产欧美在线看完整| 亚洲系列中文字幕| 日韩电视剧免费观看网站| 国产91成人在在线播放| 亚洲电影在线看| 在线看日韩欧美| 日韩69视频在线观看| 国产精品爽爽爽爽爽爽在线观看| 日韩欧美一区二区三区| 日韩最新中文字幕电影免费看| 精品亚洲va在线va天堂资源站| 欧美日韩国产精品专区| 精品久久久香蕉免费精品视频| 精品国内亚洲在观看18黄| 九九精品在线观看| 亚洲人成在线观| 日韩欧美视频一区二区三区| 欧美美最猛性xxxxxx| 精品视频久久久久久| 精品国产一区二区三区久久久| 久久韩剧网电视剧| 国产欧美一区二区三区在线看| 超碰91人人草人人干| 黄网站色欧美视频| 姬川优奈aav一区二区| 欧美成在线观看| 欧美黑人一区二区三区| 亚洲精品一区av在线播放| 韩剧1988在线观看免费完整版| 久久久成人av| 8090理伦午夜在线电影| 亚洲女人天堂视频| 91影视免费在线观看| 欧美视频一区二区三区…| 国产免费一区视频观看免费| 91精品国产99久久久久久| 98精品国产自产在线观看| 国产精品视频xxxx| 亚洲天堂久久av| 日韩动漫免费观看电视剧高清| 国产精品羞羞答答| 国产精品ⅴa在线观看h| 欧美日韩国产999| 国产一区二区三区在线观看网站| 精品国产一区二区三区久久狼5月| 精品视频一区在线视频| 国产97在线播放| 国产999精品久久久| 成人写真视频福利网| 日韩av快播网址| 亚洲黄色有码视频| 懂色av影视一区二区三区| 国产精品久久久久久久天堂| 91精品久久久久久久久不口人| 精品福利免费观看| 美女999久久久精品视频| 日韩在线中文字幕| 欧美电影第一页| 国产裸体写真av一区二区| 欧美精品国产精品日韩精品| 国产精品久久久久久久久久久不卡| 国产视频自拍一区| 欧美日韩国产限制| 欧美日韩美女视频| 国产z一区二区三区| 91久久精品久久国产性色也91| 91视频国产精品| 欧洲亚洲免费在线| 欧美精品情趣视频| 国产亚洲人成a一在线v站| 国产精品欧美亚洲777777| 国产成人精品免高潮费视频| 午夜精品一区二区三区视频免费看| 国产精品r级在线| www.xxxx欧美| 日韩中文字幕在线播放| 国产福利视频一区二区| 日韩电影网在线| 亚洲欧洲国产一区| 国产日韩换脸av一区在线观看| 中文字幕精品一区久久久久| 久久人人爽人人爽人人片av高请| 亚洲国产精品国自产拍av秋霞| 欧美综合激情网| 久久成人精品电影| 91精品国产91久久| 韩国19禁主播vip福利视频| 国产欧美亚洲精品| 狠狠躁夜夜躁久久躁别揉| 精品成人国产在线观看男人呻吟| 在线观看日韩专区| 亚洲精品成人久久电影| 亚洲国产高清福利视频| 久久人人爽人人爽爽久久| 狠狠做深爱婷婷久久综合一区| 亚洲2020天天堂在线观看| 欧美高清视频在线| 久久香蕉精品香蕉| 久国内精品在线| 中文字幕精品一区久久久久| 这里只有精品在线播放| 欧美成人精品影院| 成人写真福利网| 国产福利视频一区二区| 久久大大胆人体| 欧美日韩美女视频| 91大神在线播放精品| 国产91精品在线播放| 国自在线精品视频| 国产欧美日韩亚洲精品|