1

为什么即使第一条语句是构造函数调用,我也会收到“this(10)”的此错误。我正在使用日食。

public class MaxIndependentSet {
    private ArrayList<Integer> inputArr = new ArrayList<Integer>();

    public void MaxIndependentSet(int size) {
        inputArr.ensureCapacity(size);
    }

    public void MaxIndependentSet() {
        this(10);
    }
}
4

2 回答 2

10

您在void构造函数中添加了不正确的返回类型。

构造函数的返回类型是它的类类型,它是隐式声明的,如下所示:

public MaxIndependentSet() {
    // blah
}
于 2012-08-29T06:14:25.823 回答
1
public void MaxIndependentSet() {
        this(10);
    }

在您的代码中,您添加了 void 类型,但它是一个构造函数。

构造函数和方法在签名的三个方面有所不同:修饰符、返回类型和名称。与方法一样,构造函数可以具有任何访问修饰符:public、protected、private 或 none(通常称为包或友好)。与方法不同,构造函数只能使用访问修饰符。因此,构造函数不能是抽象的、最终的、本机的、静态的或同步的。

构造函数没有返回类型,甚至没有 void。

只写代码

public MaxIndependentSet() {
        this(10);
    }
于 2012-08-29T06:21:54.623 回答