Как назвать или иным образом идентифицировать объекты, хранящиеся в ArrayList в Java
Я строю программу ATM, используя Java. У меня есть ArrayList, который хранит объекты, используемые в качестве учетных записей пользователей. Я хочу создать метод, который перечисляет все сохраненные учетные записи, что достаточно просто, однако хранимые объекты перечислены под именами, как AccountData@17f648d
что делает их невозможными для идентификации. Вот мой код:
Модельный класс:
// model class for creating objects (users)
public class AccountData {
// variables
private String firstName;
private String lastName;
private String address;
private String pin;
private double balance = 0;
public AccountData() {
}
// set
public void setFirstName(String first) {
firstName = first;
}
public void setLastName(String last) {
lastName = last;
}
public void setAddress(String addr) {
address = addr;
}
// this should eventually be changed to a PIN generator
public void setPin(int pin) {
}
// get
public String getFirstName() {
return firstName;
}
public String getLastName() {
return lastName;
}
public String getAddress() {
return address;
}
}
класс меню:
import java.util.ArrayList;
import java.util.Scanner;
public class Menu {
// initial menu for user to choose options
public static void menu() {
ArrayList<AccountData> accountList = new ArrayList<AccountData>();
AccountData account = new AccountData();
while(true) {
System.out.println("Welcome. Please choose an option");
System.out.println("1: Display Balance");
System.out.println("2: Withdraw Cash");
System.out.println("3: Deposit Cash");
System.out.println("4: Transfer Cash");
System.out.println("5: Mini Statement");
System.out.println("6: Change PIN");
System.out.println("7: Administrator Settings");
Scanner menuScan = new Scanner(System.in);
int menuInput = menuScan.nextInt();
switch (menuInput) {
case 1:
// display balance
break;
case 2:
// withdraw cash
break;
case 3:
// deposit cash
break;
case 4:
// Transfer cash
break;
case 5:
// mini statement
break;
case 6:
// change PIN
break;
case 7:
// admin settings
for (int i = 3; i > 0; i--) {
System.out.println("Please enter the administrators passcode: "); // passcode is 1234
int passcode = menuScan.nextInt();
if (passcode == 1234) {System.out.println("Passcode is correct");
// contains a nested switch
System.out.println("1: Add Account");
System.out.println("2: Remove Account");
System.out.println("3: View Accounts");
int j = menuScan.nextInt();
switch (j) {
case 1:
// add account
Scanner accScan = new Scanner(System.in);
System.out.println("Please enter the following account details: ");
System.out.println("First name: ");
account.setFirstName(accScan.next());
System.out.println("Last name: ");
account.setLastName(accScan.next());
System.out.println("Full address: ");
account.setAddress(accScan.next());
accountList.add(account);
break;
case 2:
// remove account
break;
case 3:
// view accounts
System.out.println(accountList);
break;
}
} else {
System.out.println("Passcode is incorrect, please try again.");
System.out.println("You have " + i + " more attempt");
}
if(i == 0) {System.out.println("You have tried too many times");}
}
break;
default:
System.out.println("Please choose a valid option");
break;
}
}
}
}