我这里有Java项目的骨架。这是基于创建数据类型,我基本上会找到区域,周长,找出它们是相交还是相互包含。我理解我需要使用的公式但是我如何实际创建矩形b所以就像初始矩形我必须有x,y中心和宽度和高度?我曾尝试以类似的方式声明矩形b,但它拒绝分配任何变量。
为了找到矩形b是否与另一个矩形相交,我需要定义它以便对矩形的角进行计算等,这是我的代码:
public class OwnRectangles {
private final double x,y; //center of rectangle
private final double width; //width of rectangle
private final double height; //height of rectangle
public Rectangle(double x0, double y0, double w, double h)
{
x=x0;
y=y0;
width=w;
height=h;
}
public double area()
{
return width*height;
}
public double perimeter()
{
return height*2 + width*2;
}
public boolean intersects(Rectangle b)
{
}
public boolean contains(Rectangle b)
{
}
public void draw(Rectangle b)
{
/*Draw rectangle on standard drawing*/
}
}
我本质上是在尝试创建另一个矩形,我尝试了类似这样的东西:
public OwnRectanglesb(double x2, double y2, double w2, double h2)
{
x=x2;
y=y2;
width=w2;
height=h2;
}
这个名称不仅与OwnRectangles b不匹配,而且如果有意义的话,public ...应该只是OwnRectangles。很简单,我想定义一个要使用的第二个矩形。
答案 0 :(得分:1)
课程OwnRectangle
需要与代码中Rectangle
的使用相匹配,例如更改为:
public class Rectangle /* CHANGED FROM OwnRectangle to Rectangle */ {
private final double x,y; //center of rectangle
private final double width; //width of rectangle
private final double height; //height of rectangle
public Rectangle(double x0, double y0, double w, double h)
{
x=x0;
y=y0;
width=w;
height=h;
}
public double area()
{
return width*height;
}
public double perimeter()
{
return height*2 + width*2;
}
public boolean intersects(Rectangle b)
{
}
public boolean contains(Rectangle b)
{
}
public void draw(Rectangle b)
{
/*Draw rectangle on standard drawing*/
}
}
答案 1 :(得分:1)
为了创建矩形对象并确定它们是否相交,您的代码将如下所示:
Rectangle firstRectangle = new Rectangle(1, 2, 3, 4);
Rectangle secondRectangle = new Rectangle(5, 6, 7, 8);
boolean intersects = firstRectangle.intersects(secondRectangle);
值1, 2, 3, 4, 5, 6, 7, 8
只是任意值,您将替换为真值。然后在intersects
方法中,您只需将x,y,width和height与b.x,b.y,b.width和b.height进行比较。最后,对Rectangle对象的所有引用应该被称为Rectangle
相同的事物,而不是Rectangle
和OwnRectangle
的交换。
答案 2 :(得分:1)
我已经找到了答案。为此,我只创建了类的不同实例,直接放在:
public OwnRectangles(double x0, double y0, double w, double h)
{
x=x0;
y=y0;
width=w;
height=h;
Rectangle a = new OwnRectangles(//put arguments here);
Rectangle b = new OwnRectangles(//put arguments here);
}
可以看出,我已经基于类矩形创建了两个不同的矩形,当然在括号中我会放置参数,允许用户将矩形的宽度高度等设置为他们想要的任何东西。 / p>
答案 3 :(得分:0)
您的班级名称为OwnRectangles
,但似乎是构造函数的名称为Rectangle
。构造函数名称必须与类名匹配,否则它只是一个方法。你可以通过写:
public class OwnRectangles {
private final double x,y; //center of rectangle
private final double width; //width of rectangle
private final double height; //height of rectangle
public OwnRectangles(double x0, double y0, double w, double h) {
...