2016-04-30 2 views
4

Как я могу создать уникальный объект каждый раз, когда пользователь хочет создать новую учетную запись?Java Как создать уникальное имя объекта?

Например, если пользователь делает учетную запись, я хотел бы объект с именем acc1 тогда, если пользователь делает другую учетную запись я хотел бы объект с именем ACC2. Account ac = new Account(input.nextInt(),0,0);. Это вокруг, где мне нужно, чтобы это произошло.

Я попытался сохранить код как можно более упрощенным, а также отметить, что я довольно новичок в java, и это личный проект, который нужно просто изучить.

System.out.println("Welcome to JAVA Bank"); 
    System.out.println("____________________"); 
    System.out.println("Plese Choose an Option: "); 
    System.out.println(""); 
    System.out.println("(1) New Account"); 
    System.out.println("(2) Enter Existing Account"); 



    int choice = input.nextInt(); 


    switch(choice){ 

     case 1: 
      System.out.println("Please choose an Account ID#"); 
      Account ac = new Account(input.nextInt(),0,0); 
      break; 




public class Account { 

private int id = 0; 
private double balance = 0; 
private double annualInterestRate = 0; 
private Date dateCreated; 

public Account(int id, double balance, double annualInterestRate) { 
    this.id = id; 
    this.balance = balance; 
    this.annualInterestRate = annualInterestRate; 
    this.dateCreated = new Date(); 

} 

С благодарностью благодарю вас.

+0

Вы знаете о Java Collections? –

+0

Я не знаком с этим. – David

+2

@ Давид - тогда знай! https://docs.oracle.com/javase/tutorial/collections/ Ваша заявленная цель - изучить Java. –

ответ

4

Если вам нужен уникальный способ идентификации нескольких учетных записей, возможно, HashMap - это путь. В HashMap хранятся пары ключ-значение, где каждый ключ уникален.

Создайте переменный уровень класса для хранения учетных записей:

Map<String, Account> accounts = new HashMap<String, Account>(); 

Создать/Добавить учетную запись в HashMap:

case 1: 
    System.out.println("Please choose an Account ID#"); 
    int accountID = input.nextInt(); //Get the requested ID 
    if (accounts.containsKey("acc"+accountID) //Check to see if an account already has this ID (I added acc to the start of each account but it is optional) 
    { 
     //Tell user the account ID is in use already and then stop 
     System.out.println("Account: " + accountID + " already exists!"); 
     break; 
    } 

     //Create account and add it to the HashMap using the unique identifier key 
     Account ac = new Account(input.nextInt(),0,0); 
     accounts.put("acc"+accountID, ac); 
+1

Благодарим вас за простой ответ с комментариями. Я попробую и посмотрю, как это работает для того, что я пытаюсь выполнить. Таким образом, каждый раз, когда создается учетная запись, он получает уникальный идентификатор через hashmap? Как мне получить доступ к нему через этот идентификатор, если его несколько? Или мне нужно получить доступ через мой идентификатор класса? – David

+0

Вы можете получить доступ к учетной записи через accounts.get («acc» + ID) ;. Обратите внимание, что если учетная запись не существует, она возвращает null вместо учетной записи. – CConard96

+0

Где я вставляю карту accounts = new HashMap (); ????? Я пытался повесить его повсюду, и он не работает. Он говорит, что не может найти символ Класс: Карта. Я попробовал поместить его в свой класс, разные методы, в основном, и я улучшил util.hashMap, и ничего не работает – David