首頁 > Java > java教程 > Java中的靜態變數

Java中的靜態變數

Patricia Arquette
發布: 2025-01-13 18:05:42
原創
670 人瀏覽過

Static variables in Java

靜態變數與實例變數

每當一個變數被宣告為靜態時,這表示整個類別只有它的一個副本,而不是每個實例都有自己的副本。

靜態變數
聲明靜態變數時,將建立該變數的單一副本,並在類別層級的所有物件之間共用。靜態變數本質上是全域變數。該類別的所有實例共享相同的靜態變數。

靜態變數的注意事項
我們只能在類別層級建立靜態變數。
靜態區塊和靜態變數按照它們在程式中出現的順序執行。
靜態變數只需藉助類別就可以直接調用,我們不需要在this中為類別建立物件。

// Java program to demonstrate execution
// of static blocks and variables

class Test {

    // static variable
    static int a = m1();

    // static block
    static
    {
        System.out.println("Inside static block");
    }

    // static method
    static int m1()
    {
        System.out.println("from m1");
        return 20;
    }

    // static method(main !!)
    public static void main(String[] args)
    {
        System.out.println("Value of a : " + a);
        System.out.println("from main");
    }
}
登入後複製

上述程式碼的結果:

from m1
Inside static block
Value of a : 20
from main
登入後複製

靜態方法可以使用類別名稱呼叫另一個靜態方法或變數。他們無法呼叫實例方法或變數。

實例方法可以使用類別名稱或引用變數來呼叫靜態方法或變數。他們可以使用實例變數呼叫另一個實例方法或變數。

最終關鍵字
當 Final 關鍵字標記為靜態時,您無法覆寫它。在Java中,final關鍵字用來表示一個變數、方法或類別不能被修改或擴展。當一個變數被宣告為final時,它的值一旦初始化就不能改變。

設計靜態方法與欄位
靜態方法不需要類別的實例。它們在班級的所有用戶之間共享。實例方法的程式碼只有一份副本。類別的每個實例都可以多次呼叫它。

當類別第一次載入時,靜態變數將被分配記憶體。對於靜態變數方法,我們使用 className 而不是對象,例如 className.variable

有了靜態方法,呼叫者就不需要實例化物件來呼叫該方法。您也可以使用物件的實例來呼叫靜態方法。編譯器將檢查引用的類型並使用它而不是物件。

如果對非靜態方法進行靜態引用,您將收到編譯器錯誤。

只有實例方法可以在不使用引用變數的情況下呼叫同一類別上的其他實例方法。實例方法確實需要一個物件。

重點:

  • 實例方法可以呼叫靜態方法
  • 靜態方法不能呼叫實例方法
  • 靜態變數不能使用實例變數
  • 常數變數(狀態變數) 意味著永遠不會改變,並使用最終說明符來確保變數永遠不會改變。

當 static 關鍵字是第一次賦值時,Final 變數可以重新賦值,例如,如果我們宣告一個 static Final 變量,這表示我們可以在 static 區塊中將其初始化一次。如果聲明了最終變數但從未初始化,我們會收到編譯器錯誤。

請隨意在下面的評論中添加您關於靜態和實例變數的知識。

以上是Java中的靜態變數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板