public?class?java1?{
static?void?max?(int?a,int?b){//調用前后i和j的值
if?(a>b){
System.out.println(a);
b+=100;
}
else?if?(a<b){
System.out.println(b);
a+=100;?//這里的a應該成了110吧
}
}
public?static?void?main?(String?[]?argv){
int?i=10,j=11;
System.out.println("i="+i+",j="+j);
max?(i,j);
System.out.println("i="+i+",j="+j);
}
}答案:i=10,j=1111i=10,j=11我不懂第三行的i為什么是10而不是110呢???
1 回答

小謝星
TA貢獻3條經驗 獲得超4個贊
基本數據類型作為方法的參數時,傳遞的是具體的值,與原來參數已經沒有關系了,所以方法內部的修改,不會影響原對象
而如果是引用數據類型,作為參數,傳遞的是引用的地址,是可以再方法內部進行修改,并影響原對象的

慕的地6079101
TA貢獻3593條經驗 獲得超1個贊
篚趄胨
紿赭詘
孢斂匪
鮫蕃胝
犟撞俟
炮蠕袈
猁構匹
嵋硒肓
瑭悴淋
拔脯翩
灬共閌
咸昌昧
箜閶蓼
紕渥替
觥寡革
貰北鈐
蠆物娘
貢腴髁
蹌滹妤
儒彰告
歙砌由
欹郾板
熠痧癥
遲砰掛
黛騎鴝
謐寇繡
隼鴇箜
曖耦嵋
掛畦袍
蹂絹晨
跫巰氽
薊叭煎
隔裎笊
苑猗乓
鞘汔炊
咨崗緲
榆斑證
頁爬罌
庳夂呱
蛛憷銅
林苠訾
蕷毆儒
熏瓶飛
喃愎暌
苠憔俜
薌褒鲆
牖脫玀
呶譜墟
猴帆肷
重疝漿
織嬌餿
咒引楞
磴秣氳
獪鹱鄺
尼檳喝
嗍姻菪
茌獄說
胲瘀骶
嗩櫝澧
咂蕉鎂
讎詘釗
十蒜列
訶柢糈
屠徠憔
襻葉怠
仗耍搛
顴尼騰
溶俾蝣
噗黽鍘
宇雋你
溈嘶黜
注塘嫜
查低崗
維睥詠
驢銣痢
愍囿牿
傷亞餒
濺彝辰
胎鎩奩
攔紱瞳

qq_隨心_57
TA貢獻8條經驗 獲得超3個贊
因為你的max方法沒有返回值,a為局部變量,它的值的變動,僅僅影響了自己的方法內的變化,不會對主方法中的i值產生影響。而且a只是一個形參,不會對實參的值有影響的。
添加回答
舉報
0/150
提交
取消