溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中this的使用場景有哪些

發(fā)布時間:2020-07-01 16:04:21 來源:億速云 閱讀:259 作者:元一 欄目:編程語言

java中this的使用場景有哪些?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學(xué)習下,希望你能有所收獲。

this 是自身的一個對象,代表對象本身,可以理解為:指向?qū)ο蟊旧淼囊粋€指針。它只能在實例的上下文中使用。當實例變量或類變量被具有相同名稱的另一個變量隱藏時,我們需要使用關(guān)鍵字this限定一個實例變量,并使用類名稱定義一個類變量。

第一種情況

在一般方法中,在你的方法中的某個形參名與當前對象的某個成員有相同的名字,這時為了不至于混淆,你便需要明確使用this關(guān)鍵字來指明你要使用某個成員,使用方法是“this.成員名”,而不帶this的那個便是形參。另外,還可以用“this.方法名”來引用當前對象的某個方法,但這時this就不是必須的了,你可以直接用方法名來訪問那個方法,編譯器會知道你要調(diào)用的是那一個。

public class DemoThis {
    private String name;
    private int age;
    DemoThis(String name, int age) {
        setName(name); // 你可以加上this來調(diào)用方法,像這樣:this.setName(name);但這并不是必須的
        setAge(age);
        this.print();
    }
    public void setName(String name) {
        this.name = name;// 此處必須指明你要引用成員變量
    }
    public void setAge(int age) {
        this.age = age;
    }
    public void print() {
        System.out.println("Name=" + name + " Age=" + age);// 在此行中并不需要用this,因為沒有會導(dǎo)致混淆的東西
    }
    public static void main(String[] args) {
        DemoThis dt = new DemoThis("Kevin", "22");
    }
}

第二種情況

假設(shè)有兩個類,容器類Container和內(nèi)容類Component,在Container的成員方法中需要調(diào)用Component類的一個對象。Component的構(gòu)造函數(shù)中需要一個調(diào)用它的Container類作為參數(shù)。

class Container{
    Component comp;
    public void addComponent(){
        comp=new Component(this);
    }
}
    class Component{
        Container myContainer;
        public Component(Container c){
            myContainer=c;
        }
    }

第三種情況

構(gòu)造方法不能想其他方法一樣被調(diào)用,只能在系統(tǒng)初始化一個對象時被系統(tǒng)調(diào)用。雖然構(gòu)造方法不能被其他函數(shù)調(diào)用,但是可以被該類的其他構(gòu)造方法調(diào)用,這時用this即可。

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

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

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

AI