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
提交
取消