首頁 > Java > Java入門 > 主體

java什麼時候用this

(*-*)浩
發布: 2019-11-11 09:04:49
原創
3280 人瀏覽過

this只存在於方法內部,用來代表呼叫改方法的物件。可以理解為每個方法內部都有一個局部變數叫this,每當初始化一個物件時,就把該物件的位址傳遞給了該物件每一個方法中的this變量,從而可以在方法內部使用這個的對象。

java什麼時候用this

第一種情境      (建議學習:java課程

#在一般方法中,在你的方法中的某個形參名與當前對象的某個成員有相同的名字,這時為了不至於混淆,你便需要明確使用this關鍵字來指明你要使用某個成員,使用方法是“this.成員名”,而不帶this的那個便是形參。 另外,還可以用「this.方法名稱」來引用目前物件的某個方法,但這時this就不是必須的了,你可以直接用方法名稱來存取那個方法,編譯器會知道你要調用的是那一個。

public class DemoThis {
    private String name;
    private int age;
    DemoThis(String name, int age) {
        setName(name); // 你可以加上this来调用方法,像这样: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,因为没有会导致混淆的东西
    }
    public static void main(String[] args) {
        DemoThis dt = new DemoThis("Kevin", "22");
    }
}
登入後複製

第二種情況

假設有兩個類,容器類Container和內容類Component,在Container的成員方法中需要呼叫Component類別的一個對象。 Component的建構函式中需要一個呼叫它的Container類別作為參數。

class Container{
    Component comp;
    public void addComponent(){
        comp=new Component(this);
    }
}
    class Component{
        Container myContainer;
        public Component(Container c){
            myContainer=c;
        }
    }
登入後複製

第三種情況

建構方法不能想其他方法一樣被調用,只能在系統初始化一個物件時被系統調用。雖然建構方法不能被其他函數調用,但是可以被該類別的其他建構方法調用,這時用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;
    }
}
登入後複製

以上是java什麼時候用this的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板