第一个队列
类
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
}
}
第二个队列
类
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
类中,调用构造函数1
工作正常,
但是在第二个queue
类中,调用构造函数1
显示错误。
上面两个构造函数调用有什么区别?
(请不要关注代码的相关性)
最佳答案
在 Java 中,从同一类中的另一个构造函数调用类中的构造函数的唯一方法是使用 this
。调用queue(array.length);
在Java中是非法的。编译器将查找名为 queue
的方法,该方法采用 int 参数,并且由于不存在这样的方法,因此您会收到编译错误。
关于java - 两个构造函数调用之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29455182/