java - 自定义 Java 对象数组

标签 java arrays object

我正在尝试创建一个 Person 数组(一个带有变量 String name 和 double Total 的类)。但由于某种原因,创建第二个人取代(?)第一个人。 。 .

Person[] p = new Person[40];
    
p[0] = new Person("Jango", 32);
p[1] = new Person("Grace", 455);
    
System.out.println( p[0].getName() );
System.out.println( p[1].getName() );
System.out.println( p[0].equals(p[1]) );

输出为:

Grace
Grace
false

为什么不是:

Jango
Grace
false

????????????

public class Person {

    @SuppressWarnings("unused")
    private Person next;
    private String name;
    private double total;

    public Person(String _name)
    {
        name = _name;
        total = 0.0;
        next = null;
    }

    public Person(String _name, double _total)
    {
        name = _name;
        total = _total;
        next = null;
    }

    public String getName()
    {
        return name;
    }
}

最佳答案

您的问题是 name 实例变量被声明为静态,使其成为类变量。对名称的任何更改都会针对该类的每个实例进行更改。您需要从 nametotal 中删除静态标识符,您的代码将正常工作。

关于java - 自定义 Java 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997292/

相关文章:

java - Hibernate配置文件和Eclipse项目导出

java - 无法在 Java 的高分表中插入一行

c - 如何判断char数组表示的数字是否会溢出int?

PHP 数组语法解析错误左方括号 "["

JavaScript 通过数组进行过滤,并且仅根据一个值的匹配返回

使用 __new__ 来自现有对象的 Python 对象

Java 未命名对象

java - 我在 Android Studio 上以 XML 形式实现了卡片 View 。我怎样才能把它当作按钮呢?

java - 为什么通常不允许嵌套 block 注释?

javascript - 获取对象的属性名称