多个构造者不会工作

时间:2014-04-07 16:48:31

标签: java constructor

好的,所以我正在尝试学习如何使用多个构造函数,并且不能完全理解为什么调用这些不同的方法不起作用 - 实际上第一个方法不会编译。

感谢您的关注......

    // Compile error here. I'm trying to call the 2nd Counter method with default values.
    public void Counter() {
    this.Counter(0, false); 
}

// Here I'm trying to enable a call to the Counter method with integer and boolean attributes in its call.

    public Counter(int startingValue, boolean check) {
    this.startingValue = startingValue;
    this.check = check;
}

2 个答案:

答案 0 :(得分:5)

原因是你的第一个Counter"构造函数"根本不是构造函数 - 它是一个void返回类型的方法。

通过删除返回类型使其成为构造函数。

public Counter() {
    this(0, false);

然后你可以用this调用另一个构造函数。

答案 1 :(得分:1)

仅使用此(0,false)代替this.Counter(0,false);

public Counter() {
    this(0, false); 
} 

Counter(int startingValue, boolean check) {
    this.startingValue = startingValue;
    this.check = check;
}