本帖最后由 赵俊杰 于 2012-8-6 19:59 编辑
class Point
{
double a,b,c;
Point(double a1,double b1,double c1)
{
a = a1; b = b1; c = c1;
} //有参构造函数
void setA(double a1)
{
a = a1;
}
void setB(double b1)
{
b = b1;
}
void setC(double c1)
{
c = c1;
}
double getDistance(Point p)
{
return (a-p.a)*(a-p.a)+(b-p.b)*(b-p.b)+(c-p.c)*(c-p.c);
}
}
public class TestPoint
{
public static void main(String[] args)
{
Point p = new Point();
Point p1 = new Point(2.2,2.2,2.2);
System.out.println(p.getDistance(p1));
}
}
你已经主动构造了一个有参函数,编译器就不再帮你做无参函数了。因此Point类其实只有一个有参构造函数。
所以,Point p1 = new Point(2.2,2.2,2.2); 正确。而Point p1 = new Point();因Point其实不存在"无参构造函数",所以错误。
|