如何将构造函数传递给构造函数?

时间:2018-10-20 10:32:21

标签: java constructor

问题说:“向Point类添加一个构造函数,该构造函数接受另一个Point作为参数,并初始化新的Point具有相同的(x,y)值。在解决方案中使用关键字this。”

public  class Point
{
  int x;
  int y;
  //enter your code here
}

我已经应用了所有我能想到的概念以及命中和试用方法,但没有一个起作用。我的意思是如何将构造函数传递给构造函数! 这是我想出的最好的结果。

 public Point(Point)
 {
     this.x=x;
     this.y=y;
  }

但这会产生一个错误。   “预期<标识符> 公共点(点)”

2 个答案:

答案 0 :(得分:2)

您的构造函数应为:

public Point(Point p) {
    this.x = p.x;
    this.y = p.y;
}

通过这种方式,您可以将p的属性分配给班级的属性。
您未包含标识符p
尽管如果这是该类的唯一构造函数,则该类是无用的,因为它需要一个预先实例化的对象才能实例化一个新对象。

答案 1 :(得分:0)

至少您需要给构造函数参数变量命名:

public Point(Point p) {
 this.x = p.x;
 this.y = p.y;
}

您不必将构造函数传递给构造函数,只需复制一个实例即可。 该类的实例可以访问同一类的所有私有字段