我正在尝试创建一个 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
实例变量被声明为静态,使其成为类变量。对名称的任何更改都会针对该类的每个实例进行更改。您需要从 name
和 total
中删除静态标识符,您的代码将正常工作。
关于java - 自定义 Java 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13997292/