我正在尝试创建银行记录列表。每条记录包括名字,姓氏,电话号码和余额。在第一个类中,我向用户询问此信息,然后创建要添加到列表中的记录类的新实例。但是,当我添加更多记录时,它会替换最新记录的所有记录,您可以使用我的showAllRecords()方法查看。我该如何解决这个问题?
主类中的add和showAllRecords方法。这些方法是从main方法中的switch语句调用的:
private static void showAllRecords()
{
if(records.bankRecords.size() == 0)
System.out.println("There are no records.");
else
for (int i = 0; i < records.bankRecords.size(); i++)
{
System.out.println(records.bankRecords.get(i));
}
}
private static void add()
{
Scanner scan = new Scanner(System.in);
System.out.print("Please enter the first name: ");
String firstName = scan.next();
System.out.print("Please enter the last name: ");
String lastName = scan.next();
System.out.print("Please enter the phone number: ");
String phoneNumber = scan.next();
System.out.print("Please enter the balance: ");
int balance = scan.nextInt();
bankRecords.add(new records(firstName, lastName, phoneNumber, balance));
}
记录类
public class records
{
public static String firstName;
public static String lastName;
public static String phoneNumber;
public static int balance;
LinkedList<records> bankRecords = new LinkedList<records>();
public records(String tFirstName, String tLastName, String tPhoneNumber, int tBalance)
{
firstName = tFirstName;
lastName = tLastName;
phoneNumber = tPhoneNumber;
balance = tBalance;
}
}
答案 0 :(得分:2)
出现此问题是因为records
类中的所有字段均为static
。从字段声明中删除static
关键字。每当您创建static
类的新对象时,它们都为records
,您将覆盖这些static
字段。
静态字段属于不属于对象的类。
答案 1 :(得分:0)
答案 2 :(得分:0)
你有一个固有的计划问题。
实体&#34;银行记录&#34;之间存在差异,正如您所说,其中包括名称,余额等,以及实体&#34;银行记录列表&#34;,其中包括,可变数量的银行记录。
您的&#34;记录&#34; class(请在类名的开头使用大写字母)尝试混合两者。所以你有一个记录和一个列表。您应该将这两个实体分开。然后,您创建一个新的&#34;记录&#34;,并将其添加到&#34; ListOfBankRecords&#34;对象。
此外,您似乎同时拥有一个名为&#34;记录&#34;的变量和变量。这也是大写字母本来好的原因。你不应该有一个与一个同名的变量。