激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - 深入淺析Java中Static Class及靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的不同

深入淺析Java中Static Class及靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的不同

2020-01-20 11:33陳哈哈 JAVA教程

上次有朋友問我,java中的類可以是static嗎?我給他肯定的回答是可以的,在java中我們可以有靜態(tài)實(shí)例變量、靜態(tài)方法、靜態(tài)塊。當(dāng)然類也可以是靜態(tài)的,下面小編整理了些關(guān)于java中的static class相關(guān)資料分享在腳本之家平臺供大家

java中的類可以是static嗎?答案是可以。在java中我們可以有靜態(tài)實(shí)例變量、靜態(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)部類不能脫離外部類實(shí)體被創(chuàng)建,一個非靜態(tài)內(nèi)部類可以訪問外部類的數(shù)據(jù)和方法,因?yàn)樗驮谕獠款惱锩妗?/p>

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/* 下面程序演示如何在java中創(chuàng)建靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類 */
class OuterClass{
  private static String msg = "GeeksForGeeks";
  // 靜態(tài)內(nèi)部類
  public static class NestedStaticClass{
    // 靜態(tài)內(nèi)部類只能訪問外部類的靜態(tài)成員
    public void printMessage() {
     // 試著將msg改成非靜態(tài)的,這將導(dǎo)致編譯錯誤
     System.out.println("Message from nested static class: " + msg);
    }
  }
  // 非靜態(tài)內(nèi)部類
  public class InnerClass{
    // 不管是靜態(tài)方法還是非靜態(tài)方法都可以在非靜態(tài)內(nèi)部類中訪問
    public void display(){
     System.out.println("Message from non-static nested class: "+ msg);
    }
  }
}
class Main
{
  // 怎么創(chuàng)建靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的實(shí)例
  public static void main(String args[]){
    // 創(chuàng)建靜態(tài)內(nèi)部類的實(shí)例
    OuterClass.NestedStaticClass printer = new OuterClass.NestedStaticClass();
    // 創(chuàng)建靜態(tài)內(nèi)部類的非靜態(tài)方法
    printer.printMessage(); 
    // 為了創(chuàng)建非靜態(tài)內(nèi)部類,我們需要外部類的實(shí)例
    OuterClass outer = new OuterClass();   
    OuterClass.InnerClass inner = outer.new InnerClass();
    // 調(diào)用非靜態(tài)內(nèi)部類的非靜態(tài)方法
    inner.display();
    // 我們也可以結(jié)合以上步驟,一步創(chuàng)建的內(nèi)部類實(shí)例
    OuterClass.InnerClass innerObject = new OuterClass().new InnerClass();
    // 同樣我們現(xiàn)在可以調(diào)用內(nèi)部類方法
    innerObject.display();
  }
}

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日日草夜夜 | 欧美成人免费一区二区三区 | 亚洲电影免费观看国语版 | 超碰97人| 日本aaaa片毛片免费观看视频 | 久久精品视频一区二区三区 | 国产成人在线一区 | 黄a大片| 欧美日韩亚洲国产 | 黄色成年在线观看 | 成人免费在线视频播放 | 91免费影院| 日韩精品中文字幕一区二区三区 | 亚洲5区 | 在线播放的av网站 | 少妇一级淫片免费看 | 中文字幕 亚洲一区 | arabxxxxvideos| 色人久久| 黄色av片三级三级三级免费看 | 久久99国产精品视频 | 最新黄色毛片 | 毛片a片免费看 | 欧美一级做a | xxxx69hd一hd | 激情网站在线观看 | 黄色片在线播放 | 色综合视频网 | 欧美粗暴analvideos | 欧美另类激情 | 免费观看一区二区三区视频 | 久久精品亚洲精品国产欧美kt∨ | v11av在线视频成人 | 国产美女视频黄a视频免费 日韩黄色在线播放 | 久久精品国产一区二区 | 天天夜天天操 | 日韩黄色在线播放 | 久久久久久久.comav | 久久亚洲网 | 成人mm视频在线观看 | 五月天堂婷婷 |