public class Container { private int value; public Container(int value){ this.value=value; } public int getValue(){ return this.value; } public int sum(Container c){ return this.value+c.getValue(); } public void main(){ Container c1=new Container(1); Container c2=new Container(2); System.out.println("sum: " + c1.getValue()+c2.getValue()); System.out.println("sum: " + c1.sum(c2)); }}當我運行此代碼時,我得到以下結果:sum: 12sum: 3預期是:sum: 3sum: 3有誰知道我為什么會得到這些結果?
1 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
當您將+運算符與 a一起使用時String,它會將其視為連接,而不是加法,并且 Java 從左到右計算運算,因此"sum: " + c1.getValue()+c2.getValue()計算結果為
"sum: " + 1 + 2
"sum: 1" + 2
"sum: 12"
如果您希望先進行整數加法,則需要添加括號:
System.out.println("sum: " + (c1.getValue() + c2.getValue()));
添加回答
舉報
0/150
提交
取消