梦魇之心任务在哪交:一个简单的java程序

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 14:10:32
class Point{
protected int x,y;
public Point(){
x=0;
y=0;
System.out.println("Point constructor:"+this.toString());
}
public Point(int a,int b){
x=a;
y=b;
System.out.println("Point constructor:"+this.toString());
}
public String toString()
{return "["+x+","+y+"]";
}
}
class Circle extends Point {
protected double radius;
public Circle(){
super(4,5);
radius=10;
System.out.println("Circle constructor:"+this.toString());
}
public String toString(){
return "Center="+super.toString()+"Radius="+radius;
}
}
public class Test1{
public static void main(String args[]){
Circle circle1=new Circle();
}
}
大家看一下这个程序,结果是这样的:

Point constructor:Center=[4,5]Radius=0.0
Circle constructor:Center=[4,5]Radius=10.0
Press any key to continue...

请问为什么第一行会有一个Radius=0.0?????????
很明显,在第一个构造器中,
System.out.println("Point constructor:"+this.toString());
this.toString()反回的是
return "["+x+","+y+"]";
这里不是没有radius=*.*吗??
为什么输出的时候会有?

我把你的程序,做了一下调整,你对比看了会明白点:
class Point{
protected int x,y;
public Point(){
x=0;
y=0;
System.out.println("Point constructor:"+this.toString());
}
public Point(int a,int b){
x=a;
y=b;
System.out.println("1---Base Class Start --");
System.out.println("Point constructor:"+this.toString());
}
public String toString()
{
return "["+x+","+y+"]";
}
}
class Circle extends Point {
protected double radius;
public Circle(){
System.out.println("2---Son Class Start---");
super(4,5);
System.out.println("3---Radius Will be assigned a value---");
radius = 10;
System.out.println("Circle constructor:"+this.toString());
}
public String toString(){
return "Center="+super.toString()+"Radius="+radius;
}
}
public class Test1{
public static void main(String args[]){
Circle circle1=new Circle();
}
}