国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Static class 與non static class的區(qū)別

2019-11-08 02:25:38
字體:
供稿:網(wǎng)友

java中的類可以是static嗎?答案是可以。在java中我們可以有靜態(tài)實例變量、靜態(tài)方法、靜態(tài)塊。類也可以是靜態(tài)的。

java允許我們在一個類里面定義靜態(tài)類。比如內(nèi)部類(nested class)。把nested class封閉起來的類叫外部類。在java中,我們不能用static修飾頂級類(top level class)。只有內(nèi)部類可以為static。

     靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類之間到底有什么不同呢?下面是兩者間主要的不同。

    (1)內(nèi)部靜態(tài)類不需要有指向外部類的引用。但非靜態(tài)內(nèi)部類需要持有對外部類的引用。

    (2)非靜態(tài)內(nèi)部類能夠訪問外部類的靜態(tài)和非靜態(tài)成員。靜態(tài)類不能訪問外部類的非靜態(tài)成員。他只能訪問外部類的靜態(tài)成員。

    (3)一個非靜態(tài)內(nèi)部類不能脫離外部類實體被創(chuàng)建,一個非靜態(tài)內(nèi)部類可以訪問外部類的數(shù)據(jù)和方法,因為他就在外部類里面。

基于上面的討論,我們可以通過這些特性讓編程更簡單、有效。

?
1234567891011121314151617181920212223242526272829303132333435363738/* 下面程序演示如何在java中創(chuàng)建靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類 */classOuterClass{  PRivatestaticString msg = "GeeksForGeeks";  // 靜態(tài)內(nèi)部類  publicstaticclass NestedStaticClass{    // 靜態(tài)內(nèi)部類只能訪問外部類的靜態(tài)成員    publicvoidprintMessage() {     // 試著將msg改成非靜態(tài)的,這將導(dǎo)致編譯錯誤      System.out.println("Message from nested static class: " + msg);     }  }  // 非靜態(tài)內(nèi)部類  publicclassInnerClass{    // 不管是靜態(tài)方法還是非靜態(tài)方法都可以在非靜態(tài)內(nèi)部類中訪問    publicvoiddisplay(){     System.out.println("Message from non-static nested class: "+ msg);    }  }}classMain{  // 怎么創(chuàng)建靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的實例  publicstaticvoid main(String args[]){    // 創(chuàng)建靜態(tài)內(nèi)部類的實例    OuterClass.NestedStaticClass printer = newOuterClass.NestedStaticClass();    // 創(chuàng)建靜態(tài)內(nèi)部類的非靜態(tài)方法    printer.printMessage();     // 為了創(chuàng)建非靜態(tài)內(nèi)部類,我們需要外部類的實例    OuterClass outer = newOuterClass();       OuterClass.InnerClass inner = outer.newInnerClass();    // 調(diào)用非靜態(tài)內(nèi)部類的非靜態(tài)方法    inner.display();    // 我們也可以結(jié)合以上步驟,一步創(chuàng)建的內(nèi)部類實例    OuterClass.InnerClass innerObject = newOuterClass().newInnerClass();    // 同樣我們現(xiàn)在可以調(diào)用內(nèi)部類方法    innerObject.display();  }}

以上內(nèi)容是小編給大家介紹Java中Static Class的相關(guān)資料,希望對大家學(xué)習(xí)java中的static class有所幫助。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 延边| 新源县| 蒙城县| 闽清县| 房产| 紫阳县| 静海县| 卫辉市| 深水埗区| 寿宁县| 正安县| 新野县| 玉溪市| 当雄县| 百色市| 云阳县| 丰顺县| 桂阳县| 莆田市| 岑巩县| 宁晋县| 天峨县| 高雄县| 灵寿县| 张家口市| 辉县市| 湘阴县| 香河县| 日照市| 甘肃省| 云安县| 阳朔县| 杭州市| 肇源县| 山东| 涟源市| 监利县| 遵化市| 霍州市| 太白县| 青海省|