添加による間違った答え

ユーセフ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()));

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=311617&siteId=1