this關(guān)鍵字

this關(guān)鍵字(this key word)


繼上一小節(jié),(3.一個(gè)對象可能有多個(gè)參考)this是當(dāng)中的一個(gè)參考!指向他自己。
馬克- to-win:馬克 java社區(qū):防盜版實(shí)名手機(jī)尾號: 73203。

本章源碼



class MyTestDate {
    int year;
    int month;

    MyTestDate(int year, int month, int day) {
/* 為了學(xué)習(xí)this的用法,本例中,我們故意用了兩個(gè)相同的year,一個(gè)是全類作用范圍的(整個(gè)類中都有效馬克-to-win):int year; 另外一個(gè)是,只有本塊兒才起作用的塊作用范圍的MyTestDate(int year, 這兩個(gè)year不是一個(gè)year,如果把this.year = year; 變成 year = year,這兩個(gè)year都成了塊作用范圍的那個(gè)year,這樣全類作用范圍的那個(gè)year等于沒賦值,還是0,輸出結(jié)果就會變成0/0/0, if here you use year = year;month = month; result is 0/0/0, because this.year still is 0.local variable 's scope is less than the "this" variable's scope.
*/
        this.year = year;//this.year指前面類范圍的變量 int year。
        this.month = month;
    }

    void setYear(int year) {
        this.year = year;

    }

    void setMonth(int month) {
        this.month = month;

    }


/*系統(tǒng)見到System.out.println,會自動調(diào)用toString,初學(xué)者沒必要深究*/
    public String toString() {
        return "" + year + "/" + month ;
    }
}




public class Test {
    public static void main(String[] args) {
        MyTestDate date = new MyTestDate(2009, 7, 18);
        System.out.println(date);
        date.setYear(2009);
        date.setMonth(5);
        System.out.println(date);

        MyTestDate date1 = new MyTestDate(2009, 1, 1);
        System.out.println(date1);
        date1.setYear(2006);
        date1.setMonth(6);
        System.out.println(date1);

    }
}

result is:
2009/7
2009/5
2009/1
2006/6