是否可以在Java中使用一个类的构造函数并在另一个类中将其声明为数据类型?

是否可以在Java中使用一个类的构造函数并在另一个类中将其声明为数据类型?,java,constructor,Java,Constructor,如果在类Point中有一个名为Point的构造函数: public Point(double x, double y) { this.x = x; this.y = y; } 如何使用另一个名为Square的类初始化点。例如,我想初始化正方形中的4个点。我该怎么做 我不知道这是否有道理。但是,我尽力了。。。问我一些问题,以便我能更好地解释。我看不出问题所在。您的Square将只包含四个Point类型的成员,这些成员将使用常用的新语法进行初始化: 我看不出有什么

如果在类Point中有一个名为Point的构造函数:

public Point(double x, double y) {
        this.x = x;
        this.y = y; 
}
如何使用另一个名为Square的类初始化点。例如,我想初始化正方形中的4个点。我该怎么做


我不知道这是否有道理。但是,我尽力了。。。问我一些问题,以便我能更好地解释。

我看不出问题所在。您的Square将只包含四个Point类型的成员,这些成员将使用常用的新语法进行初始化:


我看不出有什么问题。您的Square将只包含四个Point类型的成员,这些成员将使用常用的新语法进行初始化:


您的Square类应该有如下构造函数:

public Square(Point p1, Point p2, Point p3, Point p4) {
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
        this.p4 = p4;
}
Square s = new Square(new Point(1,1), new Point(2,2), new Point(3,3), new Point(4,4));
您可以按如下方式初始化正方形:

public Square(Point p1, Point p2, Point p3, Point p4) {
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
        this.p4 = p4;
}
Square s = new Square(new Point(1,1), new Point(2,2), new Point(3,3), new Point(4,4));

您的Square类应该有如下构造函数:

public Square(Point p1, Point p2, Point p3, Point p4) {
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
        this.p4 = p4;
}
Square s = new Square(new Point(1,1), new Point(2,2), new Point(3,3), new Point(4,4));
您可以按如下方式初始化正方形:

public Square(Point p1, Point p2, Point p3, Point p4) {
        this.p1 = p1;
        this.p2 = p2;
        this.p3 = p3;
        this.p4 = p4;
}
Square s = new Square(new Point(1,1), new Point(2,2), new Point(3,3), new Point(4,4));
你能行

public Shape(Point... points) {
    this.points = points;
}

你能行

public Shape(Point... points) {
    this.points = points;
}

如果要使点具有正方形,请将其设置为属性:

class Square {
    Point p1, p2, p3, p4;
    public Square() {
      p1 = new Point(0,0);
      p2 = new Point(0,0);
      p3 = new Point(0,0);
      p4 = new Point(0,0);
    }
}
当然,还有无数其他的定义和使用方法。它将主要取决于您的类/程序设计,您应该选择什么。

如果您想要有一个带有for点的正方形,请将其设置为属性:

class Square {
    Point p1, p2, p3, p4;
    public Square() {
      p1 = new Point(0,0);
      p2 = new Point(0,0);
      p3 = new Point(0,0);
      p4 = new Point(0,0);
    }
}

当然,还有无数其他的定义和使用方法。它主要取决于你的类/程序设计,你应该选择什么。

我不确定我是否遵循,但是如果你有一个像你所说的构造函数,你可以简单地调用新的Point10.0,15.0,在指定的坐标处创建一个点

也许你想要的是这样的东西

class Square {
    private Point upperLeftCorner;
    private Point upperRightCorner;
    private Point lowerLeftCorner;
    private Point lowerRightCorner;

    public Square(double x, double y, double size) {
        upperLeftCorner = new Point(x, y);
        lowerLeftCorner = new Point(x, y+size);
        upperRightCorner = new Point(x+size, y);
        lowerRightCorner = new Point(x+size, y+size);
    }
}

我不确定我是否理解,但是如果你有一个像你所说的构造函数,你可以简单地调用新的Point10.0,15.0在指定的坐标处创建一个点

也许你想要的是这样的东西

class Square {
    private Point upperLeftCorner;
    private Point upperRightCorner;
    private Point lowerLeftCorner;
    private Point lowerRightCorner;

    public Square(double x, double y, double size) {
        upperLeftCorner = new Point(x, y);
        lowerLeftCorner = new Point(x, y+size);
        upperRightCorner = new Point(x+size, y);
        lowerRightCorner = new Point(x+size, y+size);
    }
}

这就是你的意思吗

爪哇岩土工程师 [{0.0,0.0},{0.0,10.0},{10.0,10.0},{10.0,0.0}]

代码:


这就是你的意思吗

爪哇岩土工程师 [{0.0,0.0},{0.0,10.0},{10.0,10.0},{10.0,0.0}]

代码:


你能更好地问这个问题吗?你能更好地问这个问题吗?那不是一个假设笛卡尔平面的正方形。最好用一个点的位置和大小初始化正方形,然后在构造函数中计算其他3个点。+1这种方法唯一的问题是,你可以有任何四个顶点的形状,而不仅仅是一个正方形。你提供了一个很好的例子,说明创造一个非正方形的东西是多么容易;我意识到,这更多的是对标题中所问问题的回答。这不是一个假设笛卡尔平面的正方形。最好用一个点的位置和大小初始化正方形,然后在构造函数中计算其他3个点。+1这种方法唯一的问题是,你可以有任何四个顶点的形状,而不仅仅是一个正方形。你提供了一个很好的例子,说明创造一个非正方形的东西是多么容易;我意识到,这更多的是对标题中所问问题的回答。第p1点、第p2点、第p3点、第p4点;-这就是我要找的。不知道这是可能的。你不需要在构造函数中包含x,y坐标作为参数吗?@Appsheriff如果你愿意,你可以创建各种构造函数。你不必包括他们,你可以。所有这一切都取决于你所做的设计。点p1、p2、p3、p4;-这就是我要找的。不知道这是可能的。你不需要在构造函数中包含x,y坐标作为参数吗?@Appsheriff如果你愿意,你可以创建各种构造函数。你不必包括他们,你可以。一切都取决于你的设计。