两个构造函数调用之间的区别

difference between the two constructor calls

第一个queueclass

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
    }
}

第二个queueclass

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 class 中,call to constructor 1 工作正常,

但是在第二个 queue class, call to constructor 1 显示错误。

以上两个构造函数调用有什么区别?

(请不要注意代码的相关性)

从 Java 中同一 class 中的另一个构造函数调用 class 中的构造函数的唯一方法是使用 this。调用 queue(array.length); 在 Java 中是非法的。编译器将寻找一个名为 queue 的方法,它接受一个 int 参数,由于这样的方法不存在,你会得到一个编译错误。