我对运算符+ =和=。
有疑问在以下代码中,您可以清楚地看到操作之间存在差异
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;
}
}