queue
类class queue
{
private char q[];
queue(int size) //constructor 1
{
q=new char[size];
}
queue(char array[]) //constructor 2
{
this(array.length); //call to constructor 1
}
}
queue
类class queue
{
private char q[];
queue(int size) //constructor 1
{
q=new char[size];
}
queue(char array[]) //constructor 2
{
queue(array.length); //call to constructor 1
}
}
在第一个queue
课程中,call to constructor 1
工作正常,
但在第二个queue
课程中,call to constructor 1
显示错误。
上述两个contstructor调用之间有什么区别?
(请不要注意代码的相关性)
答案 0 :(得分:4)
从Java中同一个类中的另一个构造函数调用类中的构造函数的唯一方法是使用this
。调用queue(array.length);
在Java中是非法的。编译器将查找名为queue
的方法,该方法接受一个int参数,因为这样的方法不存在,就会出现编译错误。