亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java靜態(tài)static與實(shí)例instance方法示例

 更新時(shí)間:2023年08月15日 11:10:22   作者:克里斯勇  
這篇文章主要為大家介紹了Java靜態(tài)static與實(shí)例instance方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

靜態(tài)

靜態(tài)定義

在Java語(yǔ)言中,static表示“靜態(tài)”,可以用來(lái)修飾成員變量和成員方法,也可以是靜態(tài)代碼塊。

在Java語(yǔ)言中,使用 static 修飾符修飾的屬性和方法稱(chēng)為靜態(tài)變量和靜態(tài)方法,稱(chēng)為靜態(tài)成員,歸整個(gè)類(lèi)所有,不依賴(lài)于類(lèi)的任意一個(gè)實(shí)例,被類(lèi)的所有實(shí)例共享。

格式:

修飾變量:static 數(shù)據(jù)類(lèi)型 變量名

修飾方法:[訪(fǎng)問(wèn)權(quán)限修飾符] static 方法返回值 方法名(參數(shù)列表){ 方法體 }

靜態(tài)代碼塊:static { 語(yǔ)句體 }

靜態(tài)變量

靜態(tài)變量(或稱(chēng)為類(lèi)變量),指被 static 修飾的成員變量

靜態(tài)變量在類(lèi)中的作用如下:

靜態(tài)變量在類(lèi)中被類(lèi)的所有實(shí)例共享,作為實(shí)例之間的共享數(shù)據(jù),可以增加實(shí)例之間的交互性,節(jié)省內(nèi)存空間。

靜態(tài)變量在類(lèi)中的定義與存儲(chǔ):

程序運(yùn)行時(shí),在第一次加載類(lèi)的過(guò)程中完成靜態(tài)變量的內(nèi)存分配,Java 虛擬機(jī)只為靜態(tài)變量分配一次內(nèi)存,分配在方法區(qū)中,常駐內(nèi)存。

靜態(tài)變量調(diào)用:

在類(lèi)的內(nèi)部,可以在任何方法內(nèi)直接訪(fǎng)問(wèn)靜態(tài)變量;在其他類(lèi)中,可以通過(guò)類(lèi)名訪(fǎng)問(wèn)該類(lèi)中的靜態(tài)變量。

示例:

public class StaticVar {
    public static String str1 = "Hello";//定義靜態(tài)變量
    public static void main(String[] args) {
        // 直接訪(fǎng)問(wèn)str1
        System.out.println("第 1 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:"+str1);
        // 通過(guò)類(lèi)名訪(fǎng)問(wèn)str1
        System.out.println("第 2 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:"+StaticVar.str1);
        //通過(guò)對(duì)象名訪(fǎng)問(wèn)str1
        StaticVar staticVar =new StaticVar();
        System.out.println("第 3 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:"+staticVar.str1);
    }
}

運(yùn)行結(jié)果:

第 1 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:Hello
第 2 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:Hello
第 3 次訪(fǎng)問(wèn)靜態(tài)變量,結(jié)果為:Hello

靜態(tài)方法

靜態(tài)方法(或稱(chēng)為類(lèi)方法),指被 static 修飾的成員方法

靜態(tài)方法在類(lèi)中的內(nèi)存裝載:
靜態(tài)方法會(huì)隨著類(lèi)的定義而被分配和裝載入內(nèi)存中;

靜態(tài)方法的調(diào)用:

方式1:通過(guò)類(lèi)名調(diào)用靜態(tài)方法;
方式2:通過(guò)對(duì)象名調(diào)用方法,但是不推薦。

靜態(tài)方法注意事項(xiàng):靜態(tài)方法中不能使用 this 關(guān)鍵字,不能直接訪(fǎng)問(wèn)所屬類(lèi)的實(shí)例變量和實(shí)例方法,但可以直接訪(fǎng)問(wèn)所屬類(lèi)的靜態(tài)變量和靜態(tài)方法。

示例:

public class StaticVar {
    public static String str1 = "Hello";//定義靜態(tài)變量
    public static void print(){
        System.out.println("調(diào)用靜態(tài)方法");
    }
    public static void main(String[] args) {
        // 直接調(diào)用
        print();
        // 通過(guò)類(lèi)名調(diào)用
        StaticVar.print();
        //通過(guò)對(duì)象名調(diào)用
        StaticVar staticVar =new StaticVar();
        staticVar.print();
    }
}

運(yùn)行結(jié)果:

調(diào)用靜態(tài)方法
調(diào)用靜態(tài)方法
調(diào)用靜態(tài)方法

靜態(tài)塊

Java 類(lèi)中的 static{} 代碼塊,主要用于初始化類(lèi),為類(lèi)的靜態(tài)變量賦初始值和其他作用。

靜態(tài)塊在類(lèi)中的調(diào)用:

靜態(tài)塊會(huì)在類(lèi)的定義,靜態(tài)變量分配內(nèi)存之后運(yùn)行,且只運(yùn)行一次,如果類(lèi)中包含多個(gè)靜態(tài)代碼塊,則 Java 虛擬機(jī)將按它們?cè)陬?lèi)中出現(xiàn)的順序依次執(zhí)行它們。

示例:

public class StaticVar {
    public static String str1 ;//靜態(tài)變量
//靜態(tài)塊:為靜態(tài)變量賦值
    static {
        str1 = "hallo";
    }
    public static void main(String[] args) {
        System.out.println(StaticVar.str1);//首次運(yùn)行類(lèi)
    }
}

運(yùn)行結(jié)果:

hallo

實(shí)例

定義:

實(shí)例就是對(duì)象,通過(guò)類(lèi)實(shí)例化出來(lái)的結(jié)果,每一個(gè)對(duì)象在內(nèi)存中具備獨(dú)立的內(nèi)存空間,每個(gè)對(duì)象之間互不影響。

實(shí)例變量

沒(méi)有被 static 修飾的成員變量。

實(shí)例變量在類(lèi)中的定義與存儲(chǔ):
每實(shí)例化一個(gè)對(duì)象,Java虛擬機(jī)就會(huì)給實(shí)例變量在內(nèi)存中分配空間,隨著對(duì)象存亡,而存亡。

實(shí)例變量的調(diào)用:

在類(lèi)的內(nèi)部,任何非靜態(tài)方法內(nèi)可以直接訪(fǎng)問(wèn)實(shí)例變量;在其他類(lèi)中,可以通過(guò)對(duì)象訪(fǎng)問(wèn)實(shí)例變量。

示例:

public class StaticVar {
    public  String str1 ;//實(shí)例變量
    StaticVar(String str1){}{//構(gòu)造方法,為實(shí)例變量賦值
        this.str1=str1;
    }
    public static void main(String[] args) {
        StaticVar staticVar= new StaticVar("hhhh");//實(shí)例化對(duì)象
        System.out.println( staticVar.str1);//對(duì)象名訪(fǎng)問(wèn)
    }
}

運(yùn)行結(jié)果:

hhhh

實(shí)例方法

沒(méi)有被 static 修飾的成員方法

實(shí)例方法在類(lèi)中的內(nèi)存裝載:

實(shí)例方法會(huì)隨著對(duì)象的實(shí)例化而被分配和裝載入內(nèi)存中;

實(shí)例方法的調(diào)用:

通過(guò)對(duì)象名調(diào)用方法,在實(shí)例方法中可以直接訪(fǎng)問(wèn)所屬類(lèi)的靜態(tài)變量、靜態(tài)方法、實(shí)例變量和實(shí)例方法。

示例:

public class StaticVar {
    String name;
    public StaticVar(String name) {
        this.name = name;
    }
    public  void print(String name) {
        System.out.println(name);
    }
    public static void main(String[] args) {
        StaticVar staticVar=new StaticVar("實(shí)例方法");
        staticVar.print(staticVar.name);
    }
}

運(yùn)行結(jié)果:

實(shí)例方法

靜態(tài)與實(shí)例區(qū)別

1、調(diào)用方式:

調(diào)用靜態(tài)方法時(shí),可以使用 類(lèi)名.方法名 的方式,也可以使用 對(duì)象.方法名 的方式,而實(shí)例方法只有 對(duì)象.方法名 這種方式。

2、訪(fǎng)問(wèn)類(lèi)成員是否存在限制:

靜態(tài)方法在訪(fǎng)問(wèn)本類(lèi)的成員時(shí),只允許訪(fǎng)問(wèn)靜態(tài)成員,不允許訪(fǎng)問(wèn)實(shí)例成員,而實(shí)例方法允許訪(fǎng)問(wèn)靜態(tài)成員和實(shí)例成員。

3.分配內(nèi)存:

實(shí)例變量是在實(shí)例化對(duì)象時(shí)在堆中分配內(nèi)存的,并且new一次就分配一次內(nèi)存,靜態(tài)變量被分配在方法區(qū)中,常駐內(nèi)存,靜態(tài)變量只有一份。構(gòu)造函數(shù)可以為實(shí)例屬性初始化。構(gòu)造函數(shù)不會(huì)為靜態(tài)屬性初始化。

以上就是Java靜態(tài)static與實(shí)例instance方法示例的詳細(xì)內(nèi)容,更多關(guān)于Java靜態(tài)static實(shí)例instance的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用logback屏蔽一些包的日志

    使用logback屏蔽一些包的日志

    這篇文章主要介紹了使用logback屏蔽一些包的日志,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • java生成驗(yàn)證碼步驟歸納總結(jié)

    java生成驗(yàn)證碼步驟歸納總結(jié)

    這篇文章主要為大家詳細(xì)介紹了java生成驗(yàn)證碼的步驟總結(jié),需要的朋友可以參考下
    2017-04-04
  • Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼

    Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼

    這篇文章主要介紹了Java實(shí)現(xiàn)動(dòng)態(tài)獲取圖片驗(yàn)證碼的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • JSqlParse完整介紹

    JSqlParse完整介紹

    JSqlParse是一款很精簡(jiǎn)的sql解析工具,本文主要介紹了JSqlParse完整介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • springBoot?@Scheduled實(shí)現(xiàn)多個(gè)任務(wù)同時(shí)開(kāi)始執(zhí)行

    springBoot?@Scheduled實(shí)現(xiàn)多個(gè)任務(wù)同時(shí)開(kāi)始執(zhí)行

    這篇文章主要介紹了springBoot?@Scheduled實(shí)現(xiàn)多個(gè)任務(wù)同時(shí)開(kāi)始執(zhí)行,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java對(duì)象的內(nèi)存布局詳細(xì)介紹

    Java對(duì)象的內(nèi)存布局詳細(xì)介紹

    這篇文章主要介紹了Java對(duì)象的內(nèi)存布局,我們知道在Java中基本數(shù)據(jù)類(lèi)型的大小,例如int類(lèi)型占4個(gè)字節(jié)、long類(lèi)型占8個(gè)字節(jié),那么Integer對(duì)象和Long對(duì)象會(huì)占用多少內(nèi)存呢?本文介紹一下Java對(duì)象在堆中的內(nèi)存結(jié)構(gòu)以及對(duì)象大小的計(jì)算
    2023-02-02
  • Spring項(xiàng)目中swagger用法與swagger-ui使用

    Spring項(xiàng)目中swagger用法與swagger-ui使用

    這篇文章主要介紹了Spring項(xiàng)目中swagger用法與swagger-ui使用,通過(guò)圖文并茂的形式給大家介紹了編寫(xiě)springboot項(xiàng)目的方法及導(dǎo)入spring-fox依賴(lài)的代碼詳解,需要的朋友可以參考下
    2021-05-05
  • SpringBoot項(xiàng)目引入MCP的實(shí)現(xiàn)示例

    SpringBoot項(xiàng)目引入MCP的實(shí)現(xiàn)示例

    本文主要介紹了SpringBoot項(xiàng)目引入MCP的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • IDEA新UI如何移動(dòng)類(lèi)路徑工具欄到頂部

    IDEA新UI如何移動(dòng)類(lèi)路徑工具欄到頂部

    文章介紹了IDEA更新新UI后,類(lèi)路徑工具欄放到底部的問(wèn)題,并提供了解決方案,此外,還提到了如何關(guān)閉主菜單背景色的方法
    2025-01-01
  • Java觀(guān)察者設(shè)計(jì)模式詳解

    Java觀(guān)察者設(shè)計(jì)模式詳解

    這篇文章主要為大家詳細(xì)介紹了Java觀(guān)察者設(shè)計(jì)模式,對(duì)觀(guān)察者設(shè)計(jì)模式進(jìn)行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02

最新評(píng)論