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

Java中构造函数多实例属性值不符合预期的问题求助

问题分析与修复方案

核心问题

你遇到的问题根源在于静态属性的共享特性:

  • static修饰的name是类级别的变量,所有Test实例共用这一个变量,后创建的实例会覆盖之前的赋值
  • 静态方法getName中使用this是Java语法错误,静态方法不依赖实例,不能通过this访问成员

修复步骤

要让每个实例拥有独立的name值,需要做两处修改:

  • 移除name属性的static修饰符,使其成为实例专属的成员变量
  • 移除getName方法的static修饰符,使其成为实例方法,从而能访问当前实例的name

修正后的代码

Test类代码

public class Test {
  private String name;

  public Test(String name) {
    this.name = name;
  }

  public String getName() {
    return this.name;
  }
}

测试代码

Test test = new Test("Tom");
Test test1 = new Test("Kenny");

System.out.println(test.getName());
System.out.println(test1.getName());

输出结果

Tom
Kenny

这样修改后,每个Test实例都会维护自己的name属性,调用实例的getName方法时,会返回当前实例对应的名字,符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 23:22:09