本帖最后由 邵阳 于 2012-7-8 15:02 编辑
哥们你的错啦!
class Person
{
private int age;
private String name;
private String occupation;
Person(String name)
{
this.name=name;
System.out.println(name);
}
Person(String name,int age)
{
this.name=name;
this.age=age;
System.out.println(name+"..."+age);
}
Person(int age,String name,String occupation)
{
this(name);//把两个this();的位置调换两个都报错,问为什么会这样?
this(name,age);//这儿就报错了,为什么把这句注释掉,把this(name);改为this(name,age);就ok了?
this.occupation=occupation;
System.out.println(name+"..." +age+"..."+occupation);
}
}
按你的要求改的还是编译失败。请看
D:\java\zuoye\ceshi4>javac d.java
d.java:299: 错误: 对this的调用必须是构造器中的第一个语句
this(name,age);//这儿就报错了,为什么把这句注释掉,把this(name);改为this(name,ag
e);就ok了?
^
1 个错误
不知道楼主怎么会编译成功(把this(name);改为this(name,age);就ok了?)
jvm虚拟机说的对,对this的调用必须是构造器中的第一个语句,this(name,age)不是在第一句,所以编译失败。
|