麻煩大神們看看
class?Fish{
int?w?=?1;
}
class?Lake?{
Fish?fish;
void?setFish(Fish?s){???//Fish?s表示什么意思?
fish?=?s;
}
void?foodFish(int?m){
fish.w?=?fish.w+m;
}
}
public?class?E?{
public?static?void?main(String[]?args)?{
//?TODO?Auto-generated?method?stub
Fish?redFish?=?new?Fish();
System.out.println(redFish.w);
Lake?lake?=?new?Lake();
lake.setFish(redFish);
lake.foodFish(120);
System.out.println(redFish.w);??//請問這個結(jié)果怎么得來?
System.out.println(lake.fish.w);輸出結(jié)果為1 121 121.
2015-12-30
讓fish的引用指向你傳入的s的引用,
因?yàn)閒ish.w?=?fish.w+m,這里fish.w=1+120給w重新賦值了啊,而fish和redFish指向的是同一個對象,你改變了成員變量的值,當(dāng)用redFish和lake里的fish去訪問的時候,結(jié)果自然是121
2015-12-30
Fish s就是一個參數(shù)而已,跟int x是一樣的
redFish.w是121是因?yàn)槟阃ㄟ^foodFish()修改了redFish這個對象的w值