Java中的關鍵字

      網友投稿 642 2025-04-03

      關鍵字


      final

      1. 數據

      聲明數據為常量,可以是編譯時常量,也可以是在運行時被初始化后不能被改變的常量。

      對于基本類型,final 使數值不變;

      對于引用類型,final 使引用不變,也就不能引用其它對象,但是被引用的對象本身是可以修改的。

      final int x = 1; // x = 2; // cannot assign value to final variable 'x' final A y = new A(); y.a = 1;

      2. 方法

      聲明方法不能被子類重寫。

      private 方法隱式地被指定為 final,如果在子類中定義的方法和基類中的一個 private 方法簽名相同,此時子類的方法不是重寫基類方法,而是在子類中定義了一個新的方法。

      3. 類

      聲明類不允許被繼承。

      static

      1. 靜態變量

      靜態變量:又稱為類變量,也就是說這個變量屬于類的,類所有的實例都共享靜態變量,可以直接通過類名來訪問它。靜態變量在內存中只存在一份。

      實例變量:每創建一個實例就會產生一個實例變量,它與該實例同生共死。

      public class A { private int x; // 實例變量 private static int y; // 靜態變量 public static void main(String[] args) { // int x = A.x; // Non-static field 'x' cannot be referenced from a static context A a = new A(); int x = a.x; int y = A.y; } }

      2. 靜態方法

      靜態方法在類加載的時候就存在了,它不依賴于任何實例。所以靜態方法必須有實現,也就是說它不能是抽象方法

      public abstract class A { public static void func1(){ } // public abstract static void func2(); // Illegal combination of modifiers: 'abstract' and 'static' }

      只能訪問所屬類的靜態字段和靜態方法,方法中不能有 this 和 super 關鍵字,因為這兩個關鍵字與具體對象關聯。

      public class A { private static int x; private int y; public static void func1(){ int a = x; // int b = y; // Non-static field 'y' cannot be referenced from a static context // int b = this.y; // 'A.this' cannot be referenced from a static context } }

      3. 靜態語句塊

      靜態語句塊在類初始化時運行一次。

      public class A { static { System.out.println("123"); } public static void main(String[] args) { A a1 = new A(); A a2 = new A(); } }

      123

      4. 靜態內部類

      非靜態內部類依賴于外部類的實例,也就是說需要先創建外部類實例,才能用這個實例去創建非靜態內部類。而靜態內部類不需要。

      public class OuterClass { class InnerClass { } static class StaticInnerClass { } public static void main(String[] args) { // InnerClass innerClass = new InnerClass(); // 'OuterClass.this' cannot be referenced from a static context OuterClass outerClass = new OuterClass(); InnerClass innerClass = outerClass.new InnerClass(); StaticInnerClass staticInnerClass = new StaticInnerClass(); } }

      靜態內部類不能訪問外部類的非靜態的變量和方法。

      5. 靜態導包

      在使用靜態變量和方法時不用再指明 ClassName,從而簡化代碼,但可讀性大大降低。

      import static com.xxx.ClassName.*

      6. 初始化順序

      靜態變量和靜態語句塊優先于實例變量和普通語句塊,靜態變量和靜態語句塊的初始化順序取決于它們在代碼中的順序。

      public static String staticField = "靜態變量";

      static { System.out.println("靜態語句塊"); }

      public String field = "實例變量";

      { System.out.println("普通語句塊"); }

      最后才是構造函數的初始化。

      public InitialOrderTest() { System.out.println("構造函數"); }

      存在繼承的情況下,初始化順序為:

      父類(靜態變量、靜態語句塊)

      子類(靜態變量、靜態語句塊)

      Java中的關鍵字

      父類(實例變量、普通語句塊)

      父類(構造函數)

      子類(實例變量、普通語句塊)

      子類(構造函數)

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel如何使用公式排序
      下一篇:如何在WPS表格中制作下拉列表框(wps表格如何做下拉菜單)
      相關文章
      亚洲宅男天堂在线观看无病毒 | 亚洲人成免费网站| 亚洲精品午夜无码电影网| 亚洲国产成人爱av在线播放| 国产大陆亚洲精品国产| 亚洲1区2区3区精华液| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 久久精品国产亚洲77777| 亚洲av综合avav中文| 亚洲精品乱码久久久久久蜜桃不卡| 在线观看亚洲精品福利片| 久久夜色精品国产亚洲av| 国产AV无码专区亚洲AV漫画 | 亚洲精品伊人久久久久| 亚洲伦理中文字幕| 亚洲人成综合网站7777香蕉| 亚洲av午夜精品无码专区| 亚洲综合久久精品无码色欲| 亚洲色大情网站www| 亚洲AV成人无码网天堂| 国产亚洲精品美女久久久久久下载| 国产精品亚洲天堂| 亚洲情侣偷拍精品| 永久亚洲成a人片777777| 亚洲欧洲日产国码av系列天堂| 亚洲精品V欧洲精品V日韩精品| 亚洲av最新在线网址| 亚洲国产老鸭窝一区二区三区 | 亚洲国产精品成人AV无码久久综合影院| 亚洲国产小视频精品久久久三级| 国产成人亚洲综合| 亚洲国产精品VA在线看黑人| 亚洲av色福利天堂| 亚洲沟沟美女亚洲沟沟| 最新亚洲春色Av无码专区| 小说专区亚洲春色校园| 国内精品99亚洲免费高清| 久久亚洲免费视频| 亚洲一区精品视频在线| 亚洲国产精品网站在线播放 | 国产精品成人亚洲|