【发布时间】:2012-12-21 21:16:26
【问题描述】:
我正在尝试创建一个 Person 数组(一个具有变量字符串名称和双倍总数的类)。但是由于某种原因,创建第二个 Person 会替换(?)第一个人。 . .
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;
}
}
【问题讨论】:
-
你能告诉我们person类吗?也许您使用静态变量来存储名称?
-
我们能看到 Person 类吗?
-
你能告诉我们Person的构造函数吗?
-
假设
Person的定义合理,这不应该发生。要么您在实际代码中输入错误的数组索引之一,要么错误在Person。 -
您需要查看类字段中的“静态”是什么意思,以及对象比较在 Java 中的工作原理。