我需要使用单独的类中的方法将单个对象与数组进行比较

时间:2016-01-29 01:58:37

标签: javascript java arrays class object

int blue = 1;
int yellow = 2;
int green = 3;
int pink = 4;        

Triangle[ ] tri = new Triangle[21];
Triangle[0] tri = new Triangle [blue,yellow,green];
Triangle[1] tri= new Triangle [pink,blue,yellow];
Triangle[2] tri= new Triangle [green,pink,yellow];

我有这个数组,我想使用单独的类

中的方法将对象相互比较
public boolean compareColors(Triangle another)
{
  if(colorRight == getRightColor() && colorLeft == getLeftColor() && colorBottom == getBottomColor())
      return true;
  else
      return false;
}

我无法弄清楚比较它们的确切方法或使用Triangle另一个输入来逐个比较三角形

2 个答案:

答案 0 :(得分:0)

修复语法问题后,您可以执行以下操作:

if (tri[0].compareColors(tri[1])) {
  System.out.println("tri[0] and tri[1] have the same colors.");
}

为了实现这一点,你可以按如下方式进行设置:

Triangle[] tri = new Triangle[3];
tri[0] = new Triangle(blue, yellow, green);
tri[1] = new Triangle(blue, yellow, green);
tri[2] = new Triangle(green ,pink, yellow);

您的compareColors方法也可以简化:

public boolean compareColors(Triangle another) {
  return colorRight == another.getRightColor() 
      && colorLeft == another.getLeftColor() 
      && colorBottom == another.getBottomColor();
}

但是,通常我们将其写为:

public boolean compareColors(Triangle another) {
  return this.colorRight == another.colorRight
      && this.colorLeft == another.colorLeft
      && this.colorBottom == another.colorBottom;
}

答案 1 :(得分:0)

这是一个示例Triangle类,带有一点调整,枚举。 不使用int表示颜色,而是使用枚举类型:

public class Triangle
{
    public enum Color { BLUE, YELLOW, GREEN, PINK };

    private Color colorLeft;
    private Color colorRight;
    private Color colorBottom;

    public Triangle(Color colorLeft, Color colorRight, Color colorBottom)
    {
        this.colorLeft = colorLeft;
        this.colorRight = colorRight;
        this.colorBottom = colorBottom;
    }

    public boolean compareColors(Triangle another)
    {
        return this.colorRight == another.colorRight
                && this.colorLeft == another.colorLeft
                && this.colorBottom == another.colorBottom;
    }
}

它比使用int更健壮,更自然。 然后,您可以按照以下示例创建三角形:

Triangle t = new Triangle(Color.PINK, Color.BLUE, Color.YELLOW);

如果您希望暂时继续使用int,您仍然可以使用此课程来指导您。