<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # Java 靜態 – 變量,方法,塊,類和導入語句 > 原文: [https://howtodoinjava.com/java/basics/java-static-keyword/](https://howtodoinjava.com/java/basics/java-static-keyword/) Java 中的`static`關鍵字可以應用于變量,方法,塊,導入和內部類。 在本教程中,我們將通過示例學習在這些地方使用`static`關鍵字的效果。 ```java Table of Contents 1\. Static Variable 2\. Static Method 3\. Static Import Statement 4\. Static Block 5\. Static Class 6\. Summary ``` ## 1\. 靜態變量 要語句靜態變量,請在變量語句中使用`static`關鍵字。 靜態變量語法為: ```java ACCESS_MODIFER static DATA_TYPE VARNAME; ``` 例如,以這種方式語句`Integer`類型的公共靜態變量。 ```java public static Integer staticVar; ``` 關于靜態變量的最重要的事情是它們屬于**類級別**。 這意味著在運行時中只能有**變量的一個副本**。 在類定義中定義靜態變量時,類的每個實例都可以訪問該單個副本。 類的單獨實例不會像非靜態變量一樣擁有自己的本地副本。 ```java public class JavaStaticExample { public static void main(String[] args) { DataObject objOne = new DataObject(); objOne.staticVar = 10; objOne.nonStaticVar = 20; DataObject objTwo = new DataObject(); System.out.println(objTwo.staticVar); //10 System.out.println(objTwo.nonStaticVar); //null DataObject.staticVar = 30; //Direct Access System.out.println(objOne.staticVar); //30 System.out.println(objTwo.staticVar); //30 } } class DataObject { public static Integer staticVar; public Integer nonStaticVar; } Output: 10 null 30 30 ``` 注意我們如何將值更改為 30,并且兩個對象現在都看到更新后的值 30。 您應該已經注意到的另一件事是,我們如何能夠**使用其類名**即`DataObject.staticVar`訪問靜態變量。 我們無需創建任何實例即可訪問`static`變量。 它清楚地表明**靜態變量屬于類范圍**。 ## 2\. 靜態方法 要語句靜態方法,請在方法語句中使用`static`關鍵字。 靜態方法語法為: ```java ACCESS_MODIFER static RETURN_TYPE METHOD_NAME; ``` 例如,以這種方式聲明了一個`Integer`類型的公共靜態變量。 ```java public static Integer staticVar; public static Integer getStaticVar(){ return staticVar; } ``` 幾件事要記住。 1. 您只能*訪問靜態方法*中的靜態變量。 如果您嘗試訪問任何非靜態變量,則會生成編譯器錯誤,并顯示消息“*無法對非靜態字段`nonStaticVar`進行靜態引用*”。 2. 靜態方法可以通過其類引用進行訪問,而無需創建類的實例。 盡管您也可以使用實例引用進行訪問,但是與通過類引用進行訪問相比,它沒有任何區別。 3. 靜態方法也屬于類級別范圍。 ```java public class JavaStaticExample { public static void main(String[] args) { DataObject.staticVar = 30; //Direct Access Integer value1 = DataObject.getStaticVar(); //access with class reference DataObject objOne = new DataObject(); Integer value2 = objOne.getStaticVar(); //access with instance reference System.out.println(value1); System.out.println(value2); } } class DataObject { public Integer nonStaticVar; public static Integer staticVar; //static variable public static Integer getStaticVar(){ return staticVar; } } Output: 30 30 ``` ## 3\. 靜態導入語句 普通的導入語句從包中導入類,因此可以在不引用包的情況下使用它們。 同樣,**靜態導入**語句*從類*導入靜態成員,并允許在沒有類引用的情況下使用它們。 靜態導入語句也有兩種形式:**單靜態導入**和**靜態按需導入**。 單靜態導入語句從類型中導入一個靜態成員。 靜態按需導入語句將導入類型的所有靜態成員。 ```java //Single-static-import declaration: import static <<package name>>.<<type name>>.<<static member name>>; //Static-import-on-demand declaration: import static <<package name>>.<<type name>>.*; ``` 例如,`System.out`是 ```java //Static import statement import static java.lang.System.out; public class JavaStaticExample { public static void main(String[] args) { DataObject.staticVar = 30; out.println(DataObject.staticVar); //Static import statement example } } class DataObject { public static Integer staticVar; //static variable } Output: 30 ``` > 閱讀更多: [Java 中的靜態導入語句](//howtodoinjava.com/java/basics/static-import-declarations-in-java/) ## 4\. 靜態塊 靜態塊是[類初始化](https://howtodoinjava.com/java/basics/how-to-create-a-class-in-java/ )代碼的一部分,并用`static`關鍵字包裝。 ```java public class Main { //static initializer static { System.out.println("Inside static initializer"); } } ``` 當將類加載到內存中時,將執行靜態塊。 一個類可以具有多個靜態塊,并且這些靜態塊將按照它們在類定義中出現的相同順序執行。 ```java import static java.lang.System.out; class DataObject { public Integer nonStaticVar; public static Integer staticVar; //static variable //It will be executed first static { staticVar = 40; //nonStaticVar = 20; //Not possible to access non-static members } //It will be executed second static { out.println(staticVar); } } Output: 40 ``` ## 5\. 靜態類 在 Java 中,可以將**靜態類**作為**內部類**。 就像其他靜態成員一樣,嵌套類也屬于類范圍,因此可以在沒有外部類對象的情況下訪問內部靜態類。 ```java public class JavaStaticExample { public static void main(String[] args) { //Static inner class example System.out.println( DataObject.StaticInnerClas.innerStaticVar ); } } class DataObject { public Integer nonStaticVar; public static Integer staticVar; //static variable static class StaticInnerClas { Integer innerNonStaticVar = 60; static Integer innerStaticVar = 70; //static variable inside inner class } } ``` 請注意,*靜態內部類*無法訪問外部類的非靜態成員。 它只能訪問外部類的靜態成員。 ```java public class JavaStaticExample { public static void main(String[] args) { //Static inner class example DataObject.StaticInnerClas.accessOuterClass(); } } class DataObject { public Integer nonStaticVar; public static Integer staticVar; //static variable static { staticVar = 40; //nonStaticVar = 20; //Not possible to access non-static members } public static Integer getStaticVar(){ return staticVar; } static class StaticInnerClas { public static void accessOuterClass() { System.out.println(DataObject.staticVar); //static variable of outer class System.out.println(DataObject.getStaticVar()); //static method of outer class } } } Output: 40 ``` ## 6\. 總結 讓我們總結一下有關 Java 中`static keyword`使用情況的所有信息。 1. 靜態成員屬于類。 無需創建類實例即可訪問靜態成員。 2. 靜態成員(變量和方法)只能在靜態方法和靜態塊內訪問。 3. 非靜態成員不能在靜態方法,塊和內部類中訪問。 4. 一個類可以有多個靜態塊,并且將按照它們在類定義中出現的順序執行它們。 5. 一個類只有在外部類內部語句為內部類時才能是靜態的。 6. 靜態導入可用于從類中導入所有靜態成員。 可以在沒有任何類引用的情況下引用這些成員。 學習愉快! 參考文獻: [類成員](https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html) [嵌套類](https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看