请各位给我指点一下。
dcq 2003-06-02 11:51:55 我有如下三个java程序,现有几个问题请教:
//MyPoint.java
public class MyPoint
{
private int x,y;
public MyPoint(int x,int y)
{
this.x = x;
this.y = y;
}
public MyPoint()
{
this(0,0);
}
public String toString()
{
return "(" + x +"," + y + ")";
}
}
//MyCircle.java
public class MyCircle
{
private static int counter = 1;
private MyPoint p;
private int radius;
private int index;
public MyCircle(MyPoint p,int radius)
{
this.p = p;
this.radius = radius;
index = counter++;
}
public MyCircle(MyPoint p)
{
this(p,10); //这儿为问题一
}
public void centerAt()
{
System.out.println("Center at: " + p); //这儿为问题二
}
public void printArea()
{
System.out.println("Circle " + index + " with area " + Math.PI*radius*radius);
}
}
//CircleDemo.java
public class CircleDemo
{
public static void main(String args[])
{
MyPoint p1 = new MyPoint(10,10);
MyPoint p2 = new MyPoint();
MyCircle c1 = new MyCircle(p1,50);
MyCircle c2 = new MyCircle(p2);
c1.printArea();
c1.centerAt();
c2.printArea();
c2.centerAt();
}
}
运行CircleDemo 程序的输出结果为:
Circle 1 with area 7853.981633974483
Center at :(10,10)
Circle 2 with area 314.1592653589793
Center at :(0,0)
问题一:this(p,10)这句话应该如何理解?
问题二:为什么不调用p对象的toString()方法来生成字符串而直接使用p?