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

Player类实例打印显示null 0 null,成员变量未正确赋值问题咨询

问题分析:Player类成员变量未正确初始化的原因

你遇到的问题核心是构造函数的赋值顺序完全搞反了。

看你的Player类构造函数代码:

public Player (Hand hand, int chips, String name) {
    hand = this.hand;
    chips = this.chips;
    name = this.name;
}

这里的逻辑是把类的成员变量(this.hand/this.chips/this.name)的默认值,赋给了构造函数的参数,而非将传入的参数值保存到类的成员变量里。由于成员变量的默认初始值:引用类型(Hand、String)为null,int类型为0,所以最终类的成员变量始终保持默认状态,打印时就输出了null 0 null。

正确的构造函数写法应该颠倒赋值顺序,用传入的参数给类的成员变量赋值:

public Player (Hand hand, int chips, String name) {
    this.hand = hand;
    this.chips = chips;
    this.name = name;
}

这里的this关键字明确指代类的成员变量,避免和构造函数的参数名混淆,能把创建实例时传入的hand、5000、"Player_1"正确保存到类的成员变量中。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:02:03