//出自Thinking?in?Java?4
//它是如何調(diào)用的?參數(shù)是如何傳遞的?
//這Apple哪來的?不是應(yīng)該是int?chat?String之類的嗎
class?Person?{
??public?void?eat(Apple?apple)?{
????Apple?peeled?=?apple.getPeeled();
????System.out.println("Yummy");
??}
}
class?Peeler?{
??static?Apple?peel(Apple?apple)?{
????return?apple;
??}
}
class?Apple?{
??Apple?getPeeled()?{
???return?Peeler.peel(this);?
???}
}
public?class?PassingThis?{
??public?static?void?main(String[]?args)?{
????new?Person().eat(new?Apple());
??}
}
3 回答

sanlelele
TA貢獻(xiàn)8條經(jīng)驗(yàn) 獲得超3個贊
//這里出現(xiàn)的apple?↑↑↑↑ class?Apple?{ ??Apple?getPeeled()?{ ??//這里的this代指本類,就是這個apple類 ???return?Peeler.peel(this);? ???} }
//申請一個類型為apple的變量名字叫做peeled //由于etPeeled()方法是靜態(tài)的,所以可以直接由類名調(diào)用. Apple?peeled?=?apple.getPeeled();

bug俠
TA貢獻(xiàn)2條經(jīng)驗(yàn) 獲得超0個贊
感謝2位
但是我最后還是靠輸出它們的值才知道這程序到底是怎么運(yùn)作的
peeled和apple和peeler.peel(this)都是指向同一個內(nèi)存地址的
添加回答
舉報(bào)
0/150
提交
取消