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

Java類中this關(guān)鍵字與static關(guān)鍵字的用法解析

 更新時(shí)間:2022年09月07日 10:08:54   作者:三天曬網(wǎng)且從不打魚  
這篇文章主要介紹了Java類中this關(guān)鍵字與static關(guān)鍵字的用法解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下

前言

今天給大家總結(jié)介紹一下Java類中this關(guān)鍵字和static關(guān)鍵字的用法。

this關(guān)鍵字用法:

  • this.屬性可以調(diào)用類中的成員變量
  • this()可以調(diào)用類中的構(gòu)造方法

1:修飾屬性,表示調(diào)用類中的成員變量。

代碼示例:

public class Student {

    public String name;
    public int age;
    public String school;

    public Student(String name, int age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }
}

因?yàn)槌绦虻木徒ヅ湓瓌t,編譯器會(huì)從調(diào)用代碼處的最近位置查找有無(wú)匹配的變量或者方法,若找到直接使用最近的變量或方法。所以如果上述代碼中的帶參構(gòu)造方法不使用this的話我們?cè)谑褂迷摌?gòu)造方法時(shí)會(huì)遇到無(wú)法賦值的問(wèn)題。

2:this修飾方法

this可用于構(gòu)造函數(shù)之間的相互調(diào)用,可以減少構(gòu)造函數(shù)代碼的耦合性,使代碼看起來(lái)更加整潔(不寫重復(fù)代碼很重要)。

未使用this前:

public class Student {

    public String name;
    public int age;
    public String school;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student(String name, int age, String school) {
        this.name = name;
        this.age = age;
        this.school = school;
    }

}

使用this后:

public class Student {

    public String name;
    public int age;
    public String school;

    public Student() {
    }

    public Student(String name, int age) {
        this();
        this.name = name;
        this.age = age;
    }

    public Student(String name, int age, String school) {
        this(name,age);
        this.school = school;
    }

}

PS:

  • 1.this調(diào)用構(gòu)造方法必須放在當(dāng)前構(gòu)造方法的首行調(diào)用,否則會(huì)報(bào)錯(cuò)。
  • 2.對(duì)構(gòu)造方法的調(diào)用不能成"環(huán)”必須線性調(diào)用,否則會(huì)陷入調(diào)用死循環(huán)。

3:this表示當(dāng)前對(duì)象的引用

當(dāng)前是通過(guò)哪個(gè)對(duì)象調(diào)用的屬性或者方法,this就指代哪一個(gè)對(duì)象。

代碼示例:

public class Student {

    public String name;
    public int age;
    public String school;

    public void show(){
        System.out.println(this);
    }

    public static void main(String[] args) {
        Student stu1 = new Student();
        stu1.show();
        System.out.println(stu1);
        System.out.println("————————————");
        Student stu2 = new Student();
        stu2.show();
        System.out.println(stu2);
        System.out.println("————————————");
        Student stu3 = new Student();
        stu3.show();
        System.out.println(stu3);
    }
}

輸出結(jié)果:

static關(guān)鍵字用法:

在Java的類中,若static修飾類中屬性,稱之為類的靜態(tài)屬性/類屬性,它和具體的對(duì)象無(wú)關(guān),該屬性存儲(chǔ)在JVM的方法區(qū)(不同于堆區(qū)和棧區(qū)的另一個(gè)區(qū)域),類中的所有對(duì)象共享同一個(gè)方法區(qū)(類中的常量和靜態(tài)變量?jī)?chǔ)存在方法區(qū)中),直接使用類名稱來(lái)訪問(wèn)靜態(tài)變量,不推薦使用某個(gè)對(duì)象來(lái)訪問(wèn)。

只要類一定義,JVM就會(huì)為static修飾的類屬性分配空間,它和類是綁定的,使用static修飾變量的好處是當(dāng)我們需要修改一個(gè)值時(shí)可以更加方便,比如學(xué)生類中的學(xué)校屬性,若學(xué)校改名字了,我們沒有使用static修飾,那么我們就要給每個(gè)學(xué)生丟修改一次,但是使用了static則只需要修改一次。

相關(guān)問(wèn)題:Java方法中是否可以定義靜態(tài)變量?

解答:靜態(tài)變量,當(dāng)類定義時(shí)和類一塊加載到內(nèi)存中了,而調(diào)用方法至少是在類定義之后才能調(diào)用的,先后順序不一樣,就是說(shuō)還沒調(diào)用方法便已經(jīng)執(zhí)行了方法里面的定義變量,這是不合理的。

到此這篇關(guān)于Java類中this關(guān)鍵字與static關(guān)鍵字的用法解析的文章就介紹到這了,更多相關(guān)Java類this關(guān)鍵字與static關(guān)鍵字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot在Controller層接收參數(shù)的n種姿勢(shì)(超詳細(xì))

    SpringBoot在Controller層接收參數(shù)的n種姿勢(shì)(超詳細(xì))

    這篇文章主要介紹了SpringBoot在Controller層接收參數(shù)的常用方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-01-01
  • Java中super和this的用法詳解

    Java中super和this的用法詳解

    這篇文章主要介紹了Java中super和this的用法詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08
  • JAVA日常開發(fā)中一些常見問(wèn)題歸納講解

    JAVA日常開發(fā)中一些常見問(wèn)題歸納講解

    這篇文章主要給大家介紹了JAVA日常開發(fā)中一些常見問(wèn)題的相關(guān)資料,包括語(yǔ)法錯(cuò)誤、數(shù)據(jù)類型問(wèn)題、面向?qū)ο缶幊虇?wèn)題、集合類問(wèn)題以及文件操作問(wèn)題,通過(guò)詳細(xì)的分析和示例,幫助程序員提高代碼的健壯性和可維護(hù)性,需要的朋友可以參考下
    2024-12-12
  • Reactor中的onErrorContinue?和?onErrorResume

    Reactor中的onErrorContinue?和?onErrorResume

    這篇文章主要介紹了Reactor中的onErrorContinue?和?onErrorResume,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-09-09
  • Java8新特性詳解與實(shí)戰(zhàn)分享

    Java8新特性詳解與實(shí)戰(zhàn)分享

    Java 8作為Java語(yǔ)言的一個(gè)重要更新,引入了一系列新特性,這些特性不僅提高了代碼的可讀性和可維護(hù)性,還增強(qiáng)了程序的性能,本文將詳細(xì)介紹Java 8中的幾個(gè)關(guān)鍵使用技巧,并通過(guò)代碼案例來(lái)展示它們的應(yīng)用,需要的朋友可以參考下
    2024-06-06
  • Java連接Linux服務(wù)器過(guò)程分析(附代碼)

    Java連接Linux服務(wù)器過(guò)程分析(附代碼)

    這篇文章主要介紹了Java連接Linux服務(wù)器過(guò)程分析(附代碼),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Mybatis-plus?sql注入及防止sql注入詳解

    Mybatis-plus?sql注入及防止sql注入詳解

    mybatis-plus提供了許多默認(rèn)單表 CRUD 語(yǔ)句,對(duì)于其他SQL情況愛莫能助,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus?sql注入及防止sql注入的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • 如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序

    如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序

    這篇文章主要介紹了如何對(duì)Mysql數(shù)據(jù)表查詢出來(lái)的結(jié)果進(jìn)行排序問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java文件上傳下載功能實(shí)現(xiàn)代碼

    java文件上傳下載功能實(shí)現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了java文件上傳下載功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的朋友可以參考一下
    2016-06-06
  • 使用JavaWeb webSocket實(shí)現(xiàn)簡(jiǎn)易的點(diǎn)對(duì)點(diǎn)聊天功能實(shí)例代碼

    使用JavaWeb webSocket實(shí)現(xiàn)簡(jiǎn)易的點(diǎn)對(duì)點(diǎn)聊天功能實(shí)例代碼

    這篇文章主要介紹了使用JavaWeb webSocket實(shí)現(xiàn)簡(jiǎn)易的點(diǎn)對(duì)點(diǎn)聊天功能實(shí)例代碼的相關(guān)資料,內(nèi)容介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-05-05

最新評(píng)論

昌吉市| 台前县| 濮阳市| 康平县| 肥城市| 舒兰市| 四子王旗| 庆阳市| 临江市| 大田县| 溧水县| 阳泉市| 谷城县| 黄石市| 三台县| 丘北县| 墨脱县| 武乡县| 灵寿县| 和静县| 绥宁县| 许昌县| 贵溪市| 凤冈县| 厦门市| 盐津县| 永州市| 鸡东县| 龙里县| 高安市| 西城区| 诸城市| 阆中市| 通化县| 怀化市| 青河县| 恩平市| 隆化县| 如东县| 广昌县| 华池县|