1. 程式人生 > >java中this這個概念初學者非常難理解,請舉例說明

java中this這個概念初學者非常難理解,請舉例說明

不返回 什麽 自己 var 自動 new 視頻 article int

4.this關鍵字(this key word) (視頻下載) (全部書籍)


繼上一小節,(3.一個對象可能有多個參考)this是當中的一個參考!指向他自己。

本章源碼

class MyTestDate {
int year;
int month;

MyTestDate(int year, int month, int day) {
/*為了學習this的用法,本例中,我們故意用了兩個相同的year,一個是全類作用範圍的(整個類中都有效馬克-to-win):int year; 另外一個是,只有本塊兒才起作用的塊作用範圍的MyTestDate(int year, 這兩個year不是一個year,如果把this.year = year; 變成 year = year,這兩個year都成了塊作用範圍的那個year, 這樣全類作用範圍的那個year等於沒賦值,還是0,輸出結果就會變成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;

}


/*系統見到System.out.println,會自動調用toString,初學者沒必要深究*/
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

 

【新手可忽略不影響繼續學習】(視頻下載) (全部書籍) 下面例子中setYear中的return this;返回了一個指向對象的指針,this.setMonth(8).setDay(20);是合法的,如果像原來的例子一樣什麽都不返回,就成了void.setMonth(8).setDay(20); 馬克-to-win,系統就該報錯了

class MyTestDate {
int year;
int month;

MyTestDate(int year, int month, int day) {
this.year = year;
this.month = month;
}

MyTestDate setYear(int year) {
this.year = year;
return this;
}

public MyTestDate setMonth(int month) {
this.month = month;
return this;
}


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).setMonth(8);
System.out.println(date);

MyTestDate date1 = new MyTestDate(2009, 1, 1);
。。。。。。。。。。。。。。。

詳情請見:http://www.mark-to-win.com/index.html?content=JavaBeginner/javaUrl.html&chapter=JavaBeginner/JavaBeginner2_web.html#This

java中this這個概念初學者非常難理解,請舉例說明