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另一个输入来逐个比较三角形
答案 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
,您仍然可以使用此课程来指导您。