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

Java构造函数疑问:为何实例输出x值为0而非51?

问题分析与解决

嘿,我来帮你揪出问题啦!你代码里的输出是0而非51,核心原因是你写的不是构造函数,而是一个普通方法~

构造函数的两个关键规则你没满足:

  • 构造函数不能有返回值类型(哪怕是void也不行!)
  • 构造函数的名字必须和类名完全一致(包括大小写,你的类是ListD,但方法写的是listD,小写的l和类名的大写L不匹配)

所以当你用new ListD()创建对象时,Java会调用默认的无参构造函数(你没显式写的话,JVM自动生成),这个默认构造函数不会给x赋值,而int类型的成员变量默认值就是0,所以输出是0。

修正后的代码:

//Create a MyClass class
public class ListD {
    int x; // Create a class attribute
    // 修正后的构造函数:去掉void,名字和类名一致
    public ListD() {
        x = 51; // Set the initial value for the class attribute x
    }
    public static void main(String[] args) {
        ListD myObj = new ListD(); /* Create an object of class MyClass (This will call the constructor)*/
        System.out.println(myObj.x); // 现在会输出51啦!
    }
}

你可以试试这段代码,现在创建对象时会调用你写的构造函数,把x赋值为51,输出就正确啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 15:02:39