这是我的任务:(使用netbeans)
a。不从任何其他类继承
b。包含四个私有实例,所有类型为“Point”,变量名为
point1
point2
point3
point4
℃。 创建一个采用以下值的构造函数:
我。 double x1, double y1,double x2, double y2,double x3, double y3, double x4,double y4
II。构造函数应该创建并设置四个Point实例变量
d。该课程应包含以下内容:
我。 getPoint1( )
II。 getPoint2( )
III。 getPoint3( )
IV。 getPoint4( )
e。该类应包含一个名为getCoordinatesAsString()
的方法,该方法返回格式化的S tring "%s, %s, %s, %s\n", point1, point2, point3, point4
这是我到目前为止所拥有的:
public class Quadrilateral {
private Point point1;
private Point point2;
private Point point3;
private Point point4;
public Quadrilateral(double x1, double y1,double x2,double y2,double x3,double y3,double x4,double y4)
{
point1 = x1,y1;
point2 = x2,y2;
point3 = x3,y3;
point4 = x4,y4;
}
public Point getPoint1()
{
return point1;
}
public Point getPoint2()
{
return point2;
}
public Point getPoint3()
{
return point3;
}
public Point getPoint4()
{
return point4;
}
public String getCoordinatesAsString()
{
return String.format("%s, %s, %s, %s\n", point1,point2,point3,point4);
}
public String toString()
{
return String.format("%s:\n%s", "Coordinates of Quadrilateral are", getCoordinatesAsString());
}
}
我无法弄清楚如何正确设置构造函数。我收到一个错误说不兼容的类型,double不能转换为Point。
答案 0 :(得分:1)
您没有正确构建积分。
尝试:
public Quadrilateral(double x1, double y1,double x2,double y2,double x3,double y3,double x4,double y4)
{
point1 = new Point(x1,y1);
point2 = new Point(x2,y2);
point3 = new Point(x3,y3);
point4 = new Point(x4,y4);
}
答案 1 :(得分:1)
当您创建类(对象)的新实例时,您将调用其构造函数
这是通过使用new
关键字完成的。
Point
结构是一个类,您希望创建它的实例
您反而尝试将其设为double
值,同时您应创建一个新的Point
对象,并将两个值为parameters
的值传递给点constructor
。
所以使用Quadrilateral
关键字创建Quadrilateral
构造函数中的点与创建new
对象的方式相同!
答案 2 :(得分:0)
您也可以向Quadrilateral
构造函数发送指向。制作Quadrilateral
构造函数的重载版本 -
public Quadrilateral(Point point1, Point point2, Point point3, Point point4)
{
this.point1 = point1;
this.point2 = point2;
this.point3 = point3;
this.point4 = point4;
}
然后从Quadrilateral
的客户端,您可以像这样构建Quadrilateral
-
Quadrilateral aQuadrilateral = new Quadrilateral(new Point(x1, y1), new Point(x2, y2),new Point(x3, y3), new Point(x4, y4) );
答案 3 :(得分:0)
将四边形类的构造函数更改为
point1 = new Point(x1,y1);
point2 = new Point(x2,y2);
point3 = new Point(x3,y3);
point4 = new Point(x4,y4);
您的 Point 类应该类似于
Class Point {
private double x;
private double y;
public Point (double x, double y) {
this.x = x;
this.y = y;
}
public String getCoordiantes () {
return String.format("("+ %f +","+ %f +")" , this.x, this.y);
}
(...) //other methods
}