You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写无参数构造方法?程序报错问题求助

问题解决方法

问题根源

你当前的CharacteristicsOfTheDog类只定义了无参构造方法,而Dog类的main方法里却尝试调用带两个参数的构造方法实例化对象——Java编译器不会为显式定义了构造方法的类自动生成其他构造方法,因此会抛出编译错误。

下面提供两种符合你需求的解决方案:


方案1:同时保留无参构造和带参构造

既满足类包含无参构造的要求,又支持通过参数初始化对象属性。修改CharacteristicsOfTheDog类如下:

public class CharacteristicsOfTheDog {

    int size = 0;
    int kilogram = 0;

    // 无参构造方法(保留需求)
    public CharacteristicsOfTheDog() {
    }

    // 添加带参构造方法,支持外部传值初始化
    public CharacteristicsOfTheDog(int size, int kilogram) {
        this.size = size;
        this.kilogram = kilogram;
    }

    public double getSize() {
        return size;
    }

    public double getKilogram() {
        return kilogram;
    }

    public String toString() {
        return "The Dog is " + getSize() + " cm and " + getKilogram() + " kg";
    }
}

Dog类的代码无需修改,直接运行即可正常输出:The Dog is 20.0 cm and 40.0 kg。


方案2:仅使用无参构造,通过Setter方法赋值

如果要求只能保留无参构造,需要给类添加属性的Setter方法,然后在实例化后手动赋值:

第一步:修改CharacteristicsOfTheDog类,添加Setter方法

public class CharacteristicsOfTheDog {

    int size = 0;
    int kilogram = 0;

    // 仅保留无参构造方法
    public CharacteristicsOfTheDog() {
    }

    public double getSize() {
        return size;
    }

    public double getKilogram() {
        return kilogram;
    }

    // 添加Setter方法用于修改属性值
    public void setSize(int size) {
        this.size = size;
    }

    public void setKilogram(int kilogram) {
        this.kilogram = kilogram;
    }

    public String toString() {
        return "The Dog is " + getSize() + " cm and " + getKilogram() + " kg";
    }
}

第二步:修改Dog类的main方法,实例化后赋值

public class Dog {
    public static void main(String[] args) {
        // 无参构造实例化
        CharacteristicsOfTheDog Dog1 = new CharacteristicsOfTheDog();
        // 通过Setter赋值
        Dog1.setSize(20);
        Dog1.setKilogram(40);
        System.out.println(Dog1.toString());
    }
}

运行后同样会输出预期结果。


内容的提问来源于stack exchange,提问作者Tila tila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 17:55:29