【发布时间】:2014-05-28 15:40:20
【问题描述】:
我有一个Point 课程。
该点既可以是 2-D 也可以是 3-D。我是根据传递给构造函数的坐标数组的长度来决定的。
double x, y, z;
int dimension;
Point(double x, double y, double z) {
this.x = x;
this.y = y;
this.z = z;
dimension = 3;
}
Point(double x, double y) {
this.x = x;
this.y = y;
this.z = 0;
dimension = 2;
}
Point(double[] p)
{
if(p.length == 2)
this(p[0], p[1]);
else if(p.length == 3)
this(p[0], p[1], p[2]);
}
最后一个构造函数出错,因为构造函数调用必须是构造函数中的第一个语句。
有没有办法实现我正在做的事情?
【问题讨论】:
-
为什么不创建一个工厂方法呢?
标签: java constructor compiler-errors