java中一个类的对象作为另一个类的成员,构造函数如何编写,例如下面的例子。

class point
{
int x;
int y;
public point(){ x=0;y=0;}
public point(int xx,int yy)
{
x=xx;
y=yy;
}
public int getx(){return x;}
public int gety(){return y;}
};
class circle
{
private int radius;
private point cc;
public circle() //构造不出
{
new cc().point();
radius=1;
}
public circle(int xx,int yy,int r) //构造不出
{
new cc().point(int xx,int yy);
radius=r;
}
public circle(point c,int r) //成功构造
{
cc=c;
radius=r;
}
public double perimter(int r)
{
return (2*Math.PI*r);
}
public double area(int r)
{
return (Math.PI*r*r);
}
public int getr()
{
return this.radius;
}
};
public class a1_03_02
{
public static void main(String args[])
{
point p1=new point();
System.out.println("x1="+p1.getx()+" "+"y1="+p1.gety());
point p2=new point(1,1);
System.out.println("x2="+p2.getx()+" "+"y2="+p2.gety());
circle c1=new circle();
circle c2=new circle(1,1,2);
circle c3=new circle(p2,3);
System.out.println("r1="+c1.getr()+" "+"第一个圆的周长是:"+c1.perimter(1));
System.out.println("r1="+c1.getr()+" "+"第一个圆的面积是:"+c1.area(1));
System.out.println("r2="+c2.getr()+" "+"第二个圆的周长是:"+c2.perimter(2));
System.out.println("r2="+c2.getr()+" "+"第二个圆的周长是:"+c2.area(2));
System.out.println("r3="+c3.getr()+" "+"第三个圆的周长是:"+c3.perimter(3));
System.out.println("r3="+c3.getr()+" "+"第三个圆的周长是:"+c3.area(3));
}
};

new cc().point(int xx,int yy);

point(int xx,int yy)这个方法是point类的构造方法,你用你创建的point类的对象new cc()来调用自己的构造方法,当然不允许,如果你必须要在circle类得构造方法中调用point类的构造方法,可以让circle类继承point类,这样通过在circle类的构造方法中的首行调用super(int xx,int yy)方法,就可以继承父类的构造方法了。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-03-23
private int radius;
private point cc;
public circle() //构造不出
{
// new cc().point();
cc=new point();
radius=1;
}
public circle(int xx,int yy,int r) //构造不出
{
// new cc().point(int xx,int yy);

cc.x=xx;
cc.y=yy;
radius=r;
}
另外,类中的成员变量最好都是私有的,get、set方法都写上。本回答被网友采纳
第2个回答  2012-07-26
class circle
{
private int radius;
private point cc;
public circle() //构造不出
{
new cc().point(); // 将这一句改为:
cc=new point();
radius=1;
}
public circle(int xx,int yy,int r) //构造不出
{
new cc().point(int xx,int yy); // 将这一句改为:
cc=new point(xx, yy);
radius=r;
}本回答被提问者采纳
第3个回答  2012-07-26
new cc().point();

这里,是不是该这样写:cc = new Point();
第4个回答  2012-07-26
?????????
相似回答