使用+ =运算符

时间:2014-06-11 05:48:05

标签: java casting operators

我对运算符+ =和=。

有疑问

在以下代码中,您可以清楚地看到操作之间存在差异

sum+=n

sum=sum+n

已知哪些是等效的。

如果没有强制转换,则无法编译

this.mix = mix + col;

这个编译。为什么呢?

this.mix += col;

请参阅addToMix方法:

public class Color {
    byte r;
    byte g;
    byte b;
    byte mid;
    byte mix;

    public Color (byte r, byte g, byte b) {
        this.r = r;
        this.g = g;
        this.b = b;
        createMid(r, g);
    }

    private void createMid(byte r, byte g) {
        this.mid = (byte)(r + g);
        createMix(r,g);
    }

    private void createMix (byte mid, byte b) {
        this.mix = (byte)(mid + b);
    }

    public void addToMix (byte col) {
        //this.mix = mix + col; // not compiled without casting obviously
        this.mix += col; // compiled. why?
    }

    public byte getMid() {      
        return this.mid;
    }

    public byte getMix() {      
        return this.mix;
    }   
}

0 个答案:

没有答案