2014-09-26 3 views
-3

선생님이 정보를 저장하기 위해 ArrayList를 사용하는 방법을 보여 주었지만 문제가 있습니다. 내가 이해하지 못하는 것은 내가 배열 목록에 저장 한 "계정"을 참조하는 방법이고 그 다음에 그 방법을 적용하는 것이다. 예를 들어, 나는 ArrayList에 저장된 계정에 "deposit"메소드를 사용하려고합니다.은행 계좌 ArrayList

import java.util.Scanner; 
import java.util.ArrayList; 
public class Engine 
{ 
public static void Engine() 
{ 
    ArrayList<BankAccount> accounts = new ArrayList<BankAccount>(); 
    Scanner Reader = new Scanner(System.in); 
    BankAccount n = new BankAccount(); 
    String response = Reader.nextLine(); 
    boolean keepGoing = true; 
    while(keepGoing) 
    { 
     System.out.println("Welcome to The Bank of Money, what would you like to do?\n enter code hereenter n to create a new account, enter e to use an existing account, or  enter q to quit to main menu"); 

     response = Reader.nextLine(); 
     if(response.equals("q")) keepGoing = false; 
     if(response.equals("n")) accounts.add(new BankAccount()); 
     if(response.equals("e"))System.out.println("what is your account number?"); 
     String accountNum = Reader.nextLine(); 

    } 
    System.out.println("press 1 to deposit money"); 
    System.out.println("press 2 to withdraw money"); 
    System.out.println("press 3 to check your account balance"); 
    System.out.println("press 4 to check your account's interest"); 
    System.out.println("press 5 to quit"); 
    String response2 = Reader.nextLine(); 
    if (Reader.nextLine().equals("1")) 
    { 
     for(int i = 0; i<accounts.size();i++) 
     { 
      if (accounts.get(i).equals(accountNum)) 
      { 
       accounts.get(i).deposit(amount); 

      } 
     } 
    } 
} 
} 

내 업데이트 된 코드

+0

제가 충분한 정보를 주셨으면 어떤 도움도 받으실 수 있습니다 – matt

+0

은행 계좌 배열 목록을 입력하십시오. 선생님이 가르쳐 준 것이 필요하지 않습니까? – codebot

+0

사용자 입력을 어떻게 확인합니까? 나는 스위치 문을 더 나은 옵션과 될 것입니다 또한 것 같아요. 안 그래? – Krishna

답변

1

"내가 어떻게 말합니까"

이제
if (Reader.nextLine().equals("1") 
{ 
    // Call deposit method on correct arraylist item. 
} 

, 내가 모르는 사용자 입력 1, 예금 방법을 사용하는 경우? " 주어진 코드를 기반으로하는 프로그램 컨텍스트이지만 BankAccount의 각 인스턴스에 은행 계좌 번호를주는 것처럼 보입니다.? 이것은 모두 유엔 확률이 높기 때문에 유용한 식별자입니다 알았어. 올바른 입력을 받으면, 당신까지 ArrayList의 모든 은행 계좌를 통해 단순히 루프가 올바른 계좌 번호와 하나를 발견하고 그것에 예금을 호출 할 수 있습니다 .. 또는 뭔가

if (Reader.nextLine().equals("1") 
{ 
    for (int i = 0; i<accounts.size(); i++ 
    { 
     if (accounts.get(i).getAccountNum().equals(accountNum)) // Use a getter here 
     { 
      accounts.get(i).deposit(amount to deposit); 
     } 
    } 
} 

을 함께 그 줄 ...

+0

감사합니다. 정말 도움이됩니다. 당신이 위에 쓴 코드와 나는 그것을 이해한다고 생각합니다. 나는 "금액을 두 배로"입금 "금액을 바꿨지 만 '.class'라는 구문 오류가 발생했습니다. 이 문제를 해결하는 방법을 잘 모르겠다. 대답은 상당히 기본적인 것이고, 나는 여전히 기본을 이해하려고 노력하고 있으며, 어떤 도움도 더 높이 평가 될 것이다. 수업 이름이 예상되는 이유는 무엇이며 어떻게 수정합니까? – matt

+0

개체의 메서드를 이미 호출하고 있으므로 메서드에 형식을 전달할 필요가 없습니다. 변수 만. 따라서 amount 변수를 값으로 설정하면 해당 변수를 메서드에 전달합니다. 즉, 보증금 (금액) ... – robzillaDev

+0

괜찮아요 -이 행의 은행 계좌 클래스에서 공공 무효 예금 (이중 금액)은 매개 변수에 double 유형으로 변수 "amount"를 정의합니까? – matt

0

ArrayList에서 가져올 BankAccount를 어떻게 알 수 있습니까? ArrayList에 저장하는 이유는 여러 개의 BankAccount가 있습니까? ArrayList의 모든 계정에 입금 메소드를 실행 하시겠습니까? 명확성이 더 필요합니다. 스위치 케이스를 사용하려면 (이 시나리오에서) 케이스 "1"과 같은 케이스를 사용하는 것이 좋습니다 : // 입금 방법 호출. 이렇게. 도움이되는지 확인하십시오. 도움이 더 필요하면 알려주세요.

0

// 내가 어떻게 사용자 입력 1, 예금 방법을 사용하는 경우?

코드 같은 당신이 입력을로 새 계정을 추가하거나 exist.then을 사용하면 작업을 사용자의 유형을 얻을 수 있습니다 "라고 할 이 코드

for(int i = 0; i<accounts.size();i++) 
{ 
accounts.get(i).deposit(double amount); 
} 
을 사용하는 경우 계정을 얻을 질수 입력으로 기존 계정 걸릴 계좌 번호 인 경우. 계정을 만든 후 수행 할

을 원하고 ArrayList를

에서 찾을

계정 번호에 대해 명확하게 예금 기능을 생성하십시오

관련 문제