在Java一个构造器中,为什么不能用this同时调用两个构造器

来源:百度知道 编辑:UC知道 时间:2024/06/21 21:45:33
请问下面错误的原因?
拜托!
public class A(){
void A(){}
void A(int index){}
void A(int index,String name){
this.A();
this.A(index);// 报告错误:
}
}

this标示当前的对象的引用,也就是谁用它他就是谁,你写两个,如果两个引用,例如一个S,D,那你怎么知道是S还是D在调用这个A();
你可以写成this.index=index;this.name=name;

用法没错,把void全去掉就对了。呵呵

第一。你的够造器写错了。所有的构造器都没有返回类型。void也不行。
第二。你的构造器用错了。没有在构造器里调用自己重载的构造的(这个讲不通,违背事实)。

一楼,二楼的简直是扯淡。

你想说的是方法和属性吧!
你那就不是构造器啊!
方法可以调用多个啊!

顺便送上调用多个构造的写法:
public class Test {

public Test() {
super();
System.out.print("a");
}
public Test(int a) {
this();//调用了无参构造。
System.out.print("b");
}
public Test(int a,String s) {
this(a);//调用了一个参数的构造
System.out.print("c");
}

}
你可以试下:如果调用2个参数的构造最终打印 a b c

构造方法没有返回值

根本不对,this调用构造器语句必须置于首行,而且这里面的构造器怎么能用void修饰,误人子弟