我尝试学习Java并有一个问题。 我创建了一个类Color。该类包含" color"的构造函数。具有3个int值(红色,绿色,蓝色)。然后我有一个包含很多颜色元素的数组。
现在我想将这些元素中的4个添加到一个并除以它,因此我得到每个int值的平均值。
但是eclipse说,运算符+是未定义的。
Color sum = new Color(red, green, blue)
for (int i = 0; i < length; i ++) {
sum = sum + array[i];
}
public Color(int r, int g, int b){
this.red=r;
this.green=g;
this.blue=b;
}
如何将每个数组元素的值添加到总和中?数组中的元素来自类型颜色。
答案 0 :(得分:2)
Java中没有运算符重载。您必须单独处理每个值:
int avgRed = 0;
int avgGreen = 0;
int avgBlue = 0;
for (int i = 0; i < length; i ++) {
avgRed += array[i].getRed();
avgBlue += array[i].getBlue();
avgGreen += array[i].getGreen();
}
Color avgColor = new Color(avgRed / length, avgBlue / length, avgGreen / length);
答案 1 :(得分:1)
sum 变量是Color
,表格中的连接是
sum = sum + array[i];
未定义,因此编译器无法理解如何解决此类操作
你可能会考虑像
这样的东西sum.red += array[i];
是array [i]持有一个整数或:
sum.red += array[i].red;
如果数组是颜色数组
答案 2 :(得分:0)
Sum是一个不可变的对象。您可以为其关联参数添加值。
例如:
sum.red = sum.red+array[i].red
答案 3 :(得分:0)
您无法使用+
运算符执行您的操作,但可以向add
类添加Color
方法,以便您可以编写:
Color sum = new Color(red, green, blue)
for (int i = 0; i < length; i ++) {
sum = sum.add(array[i]);
让我们假设在这个讨论中添加Color
s意味着我们将一个的红色部分添加到另一个的红色部分,绿色到绿色,蓝色到蓝色。您的add
方法如下所示:
public Color add(Color other) {
return new Color(this.red + other.red,
this.green + other.green,
this.blue + this.blue);
}