最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java深入講解static操作符

 更新時間:2022年07月14日 09:40:59   作者:白朝槿kk  
static關(guān)鍵字基本概念我們可以一句話來概括:方便在沒有創(chuàng)建對象的情況下來進(jìn)行調(diào)用。也就是說:被static關(guān)鍵字修飾的不需要創(chuàng)建對象去調(diào)用,直接根據(jù)類名就可以去訪問,讓我們來了解一下你可能還不知道情況

前言

這篇文章主要是從類中static修飾的成員變量,static修飾的成員方法這兩個方面來講解static,static成員變量的初始化會在代碼塊中講解

static修飾成員變量

在Java中,被static修飾的成員,稱之為靜態(tài)成員,也可以稱為類成員,其不屬于某個具體的對象,是所有對象所共享的。

舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    //構(gòu)造方法
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void SetAnimal(){
        System.out.println(this.name+" "+this.age+" "+type);
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        animal1.SetAnimal();
        animal2.SetAnimal();
    }
}

運行結(jié)果如下圖所以:

我定義了一個動物類,成員變量有名字和年齡,還有一個被static修飾的變量type(種類),以及一個構(gòu)造方法。我在主函數(shù)中創(chuàng)建了兩個對象,對象的種類都是狗。并用構(gòu)造方法為我創(chuàng)建的兩個變量進(jìn)行賦值。而種類type是我實現(xiàn)在定義定義變量的時候就進(jìn)行初始化的,這種初始化變量叫做就地初始化。

注意: s t a t i c 修 飾 的 成 員 變 量 不 是 一 定 要 就 地 初 始 化 \color{#FF0000}{static修飾的成員變量不是一定要就地初始化} static修飾的成員變量不是一定要就地初始化

在我們用完static修飾完type之后,type就是靜態(tài)成員變量,靜態(tài)成員變量也叫類變量。沒被static修飾的成員變量叫做普通成員變量。靜態(tài)成員變量有個特點就是 不 屬 于 對 象 \color{#FF0000}{不屬于對象} 不屬于對象。

什么是不屬于對象?

也就是說static修飾過的變量,是不依賴對象的。舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    //構(gòu)造方法
    public Animal(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void SetAnimal(){
        System.out.println(this.name+" "+this.age+" "+type);
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        System.out.println(animal1.type);
        System.out.println(Animal.type);
    }
}

仍然是上面的代碼,我們都知道 對象名.成員變量可以訪問成員變量,而訪問static修飾的成員變量不需要創(chuàng)建對象,可以直接通過 類名.靜態(tài)成員變量進(jìn)行訪問。運行結(jié)果結(jié)果如圖所示:

兩個打印的結(jié)果都是Dog,所以static修飾的變量不屬于對象,因為不需要創(chuàng)建對象也可以訪問。如果大家是想訪問static修飾的變量,建議大家就直接用類名.靜態(tài)成員變量就可以了,不建議使用對象.變量名進(jìn)行訪問。

靜態(tài)成員變量的特性

  • 不屬于某個具體的對象,是類的屬性,所有對象共享的,不存儲在某個對象的空間中
  • 既可以通過對象訪問,也可以通過類名訪問,但一般更推薦使用類名訪問
  • 類變量存儲在方法區(qū)當(dāng)中
  • 生命周期伴隨類的一生(即:隨類的加載而創(chuàng)建,隨類的卸載而銷毀)
  • 可以不初始化,如果就地初始化了如果沒被final修飾也是可以通過方法進(jìn)行修改的

static修飾的成員方法

static修飾的成員方法和成員變量一樣 ,不屬于對象。static修飾的成員方法也叫類方法。也就是說,如果我想調(diào)用static修飾的成員方法直接用 類名.成員方法 就可以了。舉個例子:

class Animal{
    String name;
    int age;
    static String type = "Dog";
    public static void staticFunc(){
        System.out.println("static修飾的成員方法");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal animal1 = new Animal("小白",1);
        Animal animal2 = new Animal("大黃",2);
        Animal.staticFunc();
    }
}

我們平時寫的方法一般都是static修飾的,為什么要用static修飾我相信你的心里應(yīng)該也有答案了。

因為static修飾的方法不屬于對象,不需要創(chuàng)建對象就可以直接使用。你也可以把static修飾的成員方法看成我們平時寫的方法,只不過這是個在不同的類里面定義的一個成員方法罷了。

static修飾的成員方法是不依賴于對象的方法,所以在static修飾的方法中,不能直接訪問普通的成員變量,因為普通的成員方法是需要依賴對象的。如果不創(chuàng)建對象,直接在static中修飾的成員方法中訪問普通成員變量是不可以的。如果想要在static中修飾的成員方法中訪問成員變量,有兩種方法,第一種是直接在static修飾的成員方法中創(chuàng)建一個對象,這樣就可以訪問了。第二種是把創(chuàng)建好的對象作為static修飾成員方法的形參,這樣也可以直接訪問。

靜態(tài)方法特性

  • 不屬于某個具體的對象,是類方法
  • 可以通過對象調(diào)用,也可以通過類名.靜態(tài)方法名(…)方式調(diào)用,更推薦使用后者
  • 不能在靜態(tài)方法中訪問任何非靜態(tài)成員變量

到此這篇關(guān)于Java深入講解static操作符的文章就介紹到這了,更多相關(guān)Java static內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 手把手教你寫一個spring IOC容器的方法

    手把手教你寫一個spring IOC容器的方法

    這篇文章主要介紹了手把手教你寫一個spring IOC容器的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 詳解java 單例模式及方法總結(jié)

    詳解java 單例模式及方法總結(jié)

    這篇文章主要介紹了詳解java 單例模式及方法總結(jié)的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解

    Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解

    這篇文章主要介紹了Socket+JDBC+IO實現(xiàn)Java文件上傳下載器DEMO詳解,需要的朋友可以參考下
    2017-05-05
  • Java的單例設(shè)計模式詳解

    Java的單例設(shè)計模式詳解

    今天小編就為大家分享一篇關(guān)于Java的單例設(shè)計模式詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • java中進(jìn)制的轉(zhuǎn)換,Byte與16進(jìn)制的轉(zhuǎn)換方法

    java中進(jìn)制的轉(zhuǎn)換,Byte與16進(jìn)制的轉(zhuǎn)換方法

    下面小編就為大家?guī)硪黄猨ava中進(jìn)制的轉(zhuǎn)換,Byte與16進(jìn)制的轉(zhuǎn)換方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-11-11
  • spring項目如何配置多數(shù)據(jù)源(已上生產(chǎn),親測有效)

    spring項目如何配置多數(shù)據(jù)源(已上生產(chǎn),親測有效)

    這篇文章主要介紹了spring項目如何配置多數(shù)據(jù)源(已上生產(chǎn),親測有效),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • 一篇文章帶你了解Java方法的使用

    一篇文章帶你了解Java方法的使用

    這篇文章主要給大家介紹了關(guān)于Java中方法使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-08-08
  • 一文徹底理清SpringBoot CURD處理邏輯、順序

    一文徹底理清SpringBoot CURD處理邏輯、順序

    這篇文章主要給大家介紹了關(guān)于如何一文徹底理清SpringBoot CURD處理邏輯、順序的相關(guān)資料,CURD是一個數(shù)據(jù)庫技術(shù)中的縮寫詞,一般的項目開發(fā)的各種參數(shù)的基本功能都是CURD,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10
  • Mybatis空值關(guān)聯(lián)的問題解析及解決方案

    Mybatis空值關(guān)聯(lián)的問題解析及解決方案

    這篇文章給大家介紹了Mybatis空值關(guān)聯(lián)的問題解析及解決方案,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-01-01
  • SpringBoot 如何從配置文件讀取值到對象中

    SpringBoot 如何從配置文件讀取值到對象中

    這篇文章主要介紹了SpringBoot 如何從配置文件讀取值到對象中,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11

最新評論

浪卡子县| 元朗区| 石渠县| 聂拉木县| 苍溪县| 长泰县| 怀远县| 德令哈市| 普兰店市| 凤山县| 霍州市| 开鲁县| 宁国市| 昌宁县| 涿鹿县| 晋城| 股票| 富平县| 农安县| 深水埗区| 秦安县| 阿勒泰市| 新巴尔虎左旗| 宁津县| 江阴市| SHOW| 年辖:市辖区| 罗山县| 二手房| 鄄城县| 玛曲县| 吉木萨尔县| 邢台市| 枣阳市| 新源县| 东宁县| 阿合奇县| 莱西市| 靖边县| 花垣县| 留坝县|