2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
就是指代當(dāng)前的對(duì)象,
public Rectangular(double d)
{
this.width = d;
this.height = d;
}
這個(gè)this就是指當(dāng)前這個(gè)Rectangular。
這樣在你實(shí)例化這個(gè)類的時(shí)候,調(diào)用不同的Rectangular的width和height屬性就互不影響了。
追問(wèn)
是不是這樣寫(xiě)的話 上下兩個(gè)的 width和height 就是兩個(gè)東西啊 如果不這樣寫(xiě)就是上下兩個(gè)函數(shù)里的是同一個(gè)啊 為什么我刪掉第一個(gè)函數(shù)里的this不影響運(yùn)行結(jié)果 但刪去第二個(gè)函數(shù)的就影響
追答
構(gòu)造函數(shù)如果參數(shù)一樣,那樣就會(huì)出錯(cuò)的,只能刪除一個(gè)或者修改參數(shù)。 刪掉第一個(gè)函數(shù)里的this不影響運(yùn)行結(jié)果 但刪去第二個(gè)函數(shù)的就影響,應(yīng)該是你實(shí)例化的時(shí)候調(diào)用的是第二個(gè)構(gòu)造函數(shù),就是類似這樣的 Rectangular rectangular =new Rectangular (2.5,3.6);
追問(wèn)
下面是這樣的
我刪了第一個(gè)this運(yùn)行結(jié)果一樣
刪了第2個(gè)運(yùn)行結(jié)果就變成Area of rec2 is 0
追答
應(yīng)該是沒(méi)有影響的 可能是GetArea方法的問(wèn)題 這是我的 public double GetArea() { return width * height; } 我的運(yùn)行過(guò)了是沒(méi)有影響的

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
因?yàn)?a >構(gòu)造函數(shù)的參數(shù)和對(duì)象的屬性是同名的,如果你在第二個(gè)函數(shù)中刪除了this,那就產(chǎn)生了歧義了,程序認(rèn)為等號(hào)左邊的width和height仍然是參數(shù)。只有加了this.以后,程序才能明白你是要給對(duì)象屬性賦值。
- 2 回答
- 0 關(guān)注
- 1474 瀏覽
添加回答
舉報(bào)