2012-11-19 120 views
2

我對JAVA相當陌生,但我正在研究一個程序,這是我遇到的問題,可能是一個簡單的修復。使用字符串變量來訪問類中的對象

我提示用戶輸入他們的模擬ATM系統的ID。

  { 
      System.out.println("Enter an ID: "); 
      Scanner input = new Scanner(System.in); 
      String acctID = input.next(); 
      withdrawAccount(acctID); 
      System.out.println(IDnum.getBalance()); 
      } 

還有更多的代碼,但它在這個時候是不相關的。將會有幾個if語句來查看用戶想要執行的操作,即從賬戶中提取資金。在這個程序中,我想讓用戶輸入ID並將其保存爲字符串並將其傳遞給WithdrawAccount方法。因此,acctID會引用用戶輸入的帳戶ID。請注意,帳戶ID與帳戶變量的名稱相同。所以如果我理解你的問題正確,你想字符串ID與這些ID標識的帳戶關聯的帳戶0將有0.1

public static void withdrawAccount(String acctID) 
      { 
      System.out.println("Enter Withdraw Amount: "); 
      Scanner input = new Scanner(System.in); 
      double WithdrawAmount = input.nextDouble(); 
      acctID.setBalance(acctID.getBalance() - WithdrawAmount); 
      } 
+0

你的問題是什麼? – dnault

+0

@dnault *我想讓用戶輸入那裏的ID並將其保存爲一個字符串並將其傳遞給WithdrawAccount方法*。 –

+0

你應該傳遞一個'Account'(或你所擁有的類)對象,其中account_id是用戶輸入的'String'。這看起來更像是一個設計問題。 –

回答

1

的ID。要做到這一點的方法之一是使用地圖:

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

... 

accountsById.put("1", account1); 
accountsById.put("2", account2); 
accountsById.put("3", account3); 
... 

,然後用給定的ID來獲得帳號:

Account account = accountsById.get(idEnteredByTheUser); 
0

也許它們存儲到一個ArrayList或者地圖最能拯救他們。

當您調用撤回方法時,您需要傳遞整個「賬戶」而不是字符串,以便您可以使用該類的「setBalance」方法精確編輯它們的餘額。