91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

發布時間:2023-04-20 11:45:46 來源:億速云 閱讀:106 作者:iii 欄目:開發技術

本篇內容介紹了“Java中static修飾的靜態變量使用方法及代碼塊的特性是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

 前言

static關鍵字表示“靜態的”,可以用來修飾類的變量、成員方法和代碼塊等。

一、靜態變量

一個類通過使用new關鍵字可以創建多個不同的對象,而不同的對象實例將被分配到不同的內存空間。

但在一些特殊情況下,我們也會希望某些特定的數據在內存中只有一份,但能夠被一個類中的所有對象實例所共享。

在java中,類的成員變量有兩種:

①:被static修飾的變量,即類變量(靜態變量),

類加載的時候就完成內存空間的分配,在內存中占用一份備份,同時也只分配一次內存,供其他的實例對象訪問(共享)。

可以直接通過類名.變量名或對象名.變量名的方式來訪問。

     //通過類名訪問靜態變量
     //類名.靜態成員變量
     Demo.country="中國";
     System.out.println(Demo.country);
     //通過對象名訪問靜態成員變量
     //對象名.靜態成員變量
     demo1.country="美國";
     System.out.println(Demo.country);

②:沒被static修飾的變量,即實例變量

每實例化一次就會為其分配一次內存,可能存在多次分配內存空間,

必須通過對象名.變量名的方法來訪問。

     demo1.name="張三";
     //通過對象名訪問非靜態變量
     System.out.println(demo1.name);

若堅持使用類名.變量的方式來訪問,則會出現以下錯誤,

原因是此處的變量還沒有經過實例化,就直接拿來訪問了。

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

關于靜態變量,需要注意以下問題:

static只能修飾成員變量,不能修飾局部變量

因為局部變量此時還沒有實例化,沒有分配內存空間,而static在類加載時就要分配空間。

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

二、靜態方法

被static修飾的方法被稱為靜態方法。

與上文中的靜態變量一樣,訪問靜態方法也不需要創建類的實例,可直接通過類名來訪問;

若已經創建 了對象,也可以通過對象引用來訪問。

靜態方法可以通過類名.方法名或者對象名.方法名兩種方式來調用靜態方法。

關于靜態變量,需要注意兩點:

①:靜態方法只能訪問類中用static修飾的成員。

靜態方法可以通過類名來調用,且在調用時可以不創建任何對象,而沒有被static修飾的從成員需要先創建對象才能訪問。

    //類變量,代表人的國籍
    static String country;
 
    //實例變量,代表人的姓名
    String name;
 
    //靜態方法
    static void printInfo()
    {
        System.out.println("Person的國籍是:"+country);
        //System.out.println(name); 錯誤!!!
    }

 若在靜態方法,訪問了類中非static修飾的成員,則會出現以下錯誤:

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

②:靜態方法不能以任何方式引用this和super關鍵字。

靜態方法可以通過類名直接調用,這時,可能還沒有任何對象產生。

所以,代表當前對象的this和代表父類對象的super都是不存在的。

三、靜態代碼塊

在Java程序中,代碼塊就是用一對大括號括起來的若干行代碼。

而所謂的靜態代碼塊就是用static關鍵字修飾的代碼塊。

在程序中,通常使用靜態代碼塊來對類的靜態成員變量就行初始化。

class A
{
    static int id;
    //靜態代碼塊
    static
    {
        id=100;
    }
}

需要注意的是,類的靜態代碼塊不可以訪問類的非靜態成員。

當類加載時,其靜態成員代碼塊也將同步執行,且由于類只加載一次,故靜態成員代碼塊也只執行一次。

非靜態代碼塊在實例化對象時會被多次執行。

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

Java中static修飾的靜態變量使用方法及代碼塊的特性是什么

先后順序如下:

靜態代碼塊 > 普通代碼塊>無參構造方法

“Java中static修飾的靜態變量使用方法及代碼塊的特性是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扎兰屯市| 阳曲县| 安徽省| 谢通门县| 南安市| 辽中县| 若羌县| 红安县| 明水县| 大渡口区| 景宁| 崇明县| 福贡县| 嘉定区| 江津市| 布拖县| 仲巴县| 深泽县| 伊金霍洛旗| 白银市| 抚远县| 定兴县| 抚顺县| 南丰县| 灯塔市| 枣强县| 墨脱县| 许昌市| 东海县| 疏勒县| 阿鲁科尔沁旗| 来安县| 金秀| 鸡西市| 仁怀市| 香河县| 安陆市| 精河县| 禄劝| 东台市| 双鸭山市|