在java中从另一个构造函数调用另一个构造函数

2022-09-01 06:31:04

这是在采访中提出的问题。如果一个类在java中有多个构造函数,我们可以从另一个构造函数调用一个构造函数吗?什么时候?如何调用 I mean 语法?


答案 1

你可以,我知道的语法是

this(< argument list >);

您还可以通过以下方式调用超类的构造函数:

super(< argument list >);

这两个这样的调用只能作为构造函数中的第一个语句完成(因此,在完成其他任何操作之前,您只能调用另一个构造函数)。


答案 2

是的,你可以这样做。

例如,看看实现:ArrayList

public ArrayList(int initialCapacity) {
    super();
    if (initialCapacity < 0)
        throw new IllegalArgumentException("Illegal Capacity: "+
                                           initialCapacity);
    this.elementData = new Object[initialCapacity];
}

/**
 * Constructs an empty list with an initial capacity of ten.
 */
public ArrayList() {
    this(10);
}

第二个构造函数调用第一个构造函数,其 a 为 10。default capacity