equals()
方法应检查第一个框和多维数据集的尺寸是否相同。怎么解决?它目前无效。
程序在if处返回消息"illegal start of type"
。我是这个PLZ帮助的新手
public class testNew
{
public static void main (String []args)
{
Rectangle3 one = new Rectangle3(5,20);
Box3 two = new Box3(4,4,4);
Box3 three = new Box3(4,10,5);
Cube3 four = new Cube3(4,4,4);
showEffectBoth(one);
showEffectBoth(two);
showEffectBoth(three);
showEffectBoth(four);
}
public static String showEffectBoth(Rectangle3 r)
{
return System.out.println(r);
}
boolean b = two.equals(four);
if (b == true)
{
System.out.println("Box and cube have the same dimensions");
}
}
public class Rectangle3
{
// instance variables
int length;
int width;
public Rectangle3(int l, int w)
{
length = l;
width = w;
}
public int getLength()
{
return length;
}
public int getWidth()
{
return width;
}
public String toString()
{
return getClass().getName() + " - " + length + " X " + width;
}
public boolean equals(Rectangle3 obj)
{
if ((getLength().equals(obj.getLength()) && getWidth().equals(obj.getWidth())))
return true;
else
return false;
}
}
答案 0 :(得分:3)
首先,关于编译器错误,它与equals()
方法无关。这只是因为下面的所有代码都应该在main方法中,因为它是您声明变量two
和four
的唯一部分:
boolean b = two.equals(four);
if (b == true) {
System.out.println("Box and cube have the same dimensions");
}
另请注意,Rectangle3
类不应与testNew
位于同一文件中,因为两者都声明为public
,如果要在同一文件中同时使用它们那么你需要从其中一个(你不会用作文件名的那个)中删除public
declration
第二次,您的equals()
方法在技术上是正确的(我在功能上也是这样),但这不是您在此处代码中包含的equals()
方法,因为这个方法属于到Rectangle3
,equals()
,而您在此处测试的Box3
应在Cube3
和b
NB:请注意,根据assylias的评论,由于boolean
是if (b == true)
,因此无需使用if (b)
,只需{{1}}
答案 1 :(得分:0)
这不是等于功能。这条线
boolean b = two.equals(four)
是非法的。它不在任何方法中,它引用在main()中声明的变量!