ユーセフN:
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: 12
sum: 3
期待されています:
sum: 3
sum: 3
私はこれらの結果を取得しています、なぜ誰でも知っていますか?
azurefrog:
あなたが使用している場合+
をオペレータにString
それが連結ではなく、さらにとして扱い、およびJavaはそう、左から右への操作を評価"sum: " + c1.getValue()+c2.getValue()
として評価されています
"sum: " + 1 + 2
"sum: 1" + 2
"sum: 12"
あなたが整数の加算が最初に発生する場合は、括弧を追加する必要があります。
System.out.println("sum: " + (c1.getValue() + c2.getValue()));