有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何向对象添加值

我试图学习Java,但有一个问题。 我创建了一个类颜色。这个类包含一个“color”的构造函数,它有3个int值(红色、绿色、蓝色)。然后我有一个包含很多颜色元素的数组

现在我想把其中的4个元素加到1上,然后除以它,得到每个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;
}

如何将每个数组元素的值添加到和中?数组中的元素来自类型颜色


共 (4) 个答案

  1. # 1 楼答案

    您不能使用+运算符来完成您想做的事情,但是您可以向Color类添加一个add方法,这样您就可以编写:

    Color sum = new Color(red, green, blue)
     for (int i = 0; i < length; i ++) {
        sum = sum.add(array[i]);
    

    让我们假设在这个讨论中,添加Color意味着我们将一个的红色部分添加到另一个的红色部分,绿色到绿色,蓝色到蓝色。您的add方法如下所示:

        public Color add(Color other) {
            return new Color(this.red + other.red, 
                             this.green + other.green,
                             this.blue + this.blue);
        }
    
  2. # 2 楼答案

    Sum是一个对象,不是变量。可以向其关联的参数添加值

    例如:

    sum.red = sum.red+array[i].red
    
  3. # 3 楼答案

    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);
    
  4. # 4 楼答案

    sum变量是一个Color

    sum = sum + array[i];
    

    未定义,因此编译器无法理解如何解决此类操作

    也许你可以考虑一些类似于

    的东西。
    sum.red +=  array[i];
    

    is array[i]包含一个整数或:

    sum.red +=  array[i].red;
    

    如果数组是一个颜色数组