2014-05-17 2 views
-2

저는 은행 계좌 프로그램을 만들고 있습니다. 생성자를 위해 고객 이름을 추가하고 (1) 고객 1 명부터 n 명 고객까지 추가 된 각 고객에 대한 계좌 번호를 자동으로 생성하고 싶습니다. 하지 않으면 ...), 나는 "BankDataBase"클래스의 ArrayList에이 이름들을 추가 할 때 각각의 accNum에 대해 num 3을 인쇄합니다.순차적 계정 번호를 생성하는 방법은 무엇입니까?

public class Customer 
{ 
private final String fname; 
private final String lname; 


Customer(String fn, String ln) 
{ 
    fname = fn; 
    lname = ln; 
} 

public class Account 
{ 

private Customer cust; 
private int accNum = 0; 
private double balance; 

Account(Customer c) 
{ 
    cust = c; 
    balance = 0; 
    accNum++; 
} 

public class DataBase 
{ 

private Account accCust; 
int getAcc = 0; 

ArrayList<Account> chaseAccts = new ArrayList<>(); 

public void addAcct(Account me) 
{ 
    accCust = me; 
    chaseAccts.add(me); 
} 

public void display() 
{ 
    for (int i = 0; i < chaseAccts.size(); i++) 
    { 

     System.out.println(chaseAccts.get(i).getAccount() + " " + accCust.getAccNum()); 
    } 
} 

미리 감사드립니다.

+0

기다립니다 ... 인쇄 (3) 번호? 왜 계좌 번호로 귀찮게합니까? 계정 번호는 고유해야한다고 생각했습니다. – awksp

+0

데이터베이스의'sequence' 타입의 컬럼을 사용하십시오. – Braj

+0

Account 생성자를 호출하는 위치와 같은 코드를 더 게시 할 수 있습니까? 여기있는 것에서 보면 모든 계정에 'accNum'이'1 '(0으로 초기화되고 생성자에서 한 번 증가)로 표시됩니다. – Danny

답변

0

를 만들기 위해 노력하고 시리즈에 새 계정을 다음 숫자를 지정할 수 있습니다. 예 :

public class Account 
{ 

    private static int nextAccoutNumber = 0; 

    private Customer cust; 
    private double balance; 

    Account(Customer c) 
    { 
     cust = c; 
     balance = 0; 
     accNum = ++nextAccountNumber; 
    } 
} 

목록에 새 계정을 추가하고 있지만 로컬 변수에도 저장하고 있습니다 이 작업을 수행하는 곳 :

System.out.println(chaseAccts.get(i).getAccount() + " " + accCust.getAccNum()) 

각 accCust의 accNum 값을 매번 쓰고 있습니다. 당신은

System.out.println(chaseAccts.get(i).getAccount() + " " + chaseAccts.get(i).getAccNum()); 

를 작성해야합니다 그리고 당신은 유형의 목록을 사용하고 있기 때문에 당신은 그냥 전체 루프 쓸 수 ArrayList<Account> : 자신의 계정의 * 각 *에 대한

public void display() 
{ 
    for(Account account : chaseAccts) { 
     System.out.println(account.getAccount() + " " + account.getAccNum()); 
    } 
} 
+0

아! 그것은 효과가 있었지만'accCust.get (i) .getAcctNum());'에서'chaseAccts.get (i) .getAcctNum());로 코드를 변경해야했습니다. –

+0

하하, 네 말이 맞아. 전 루프의 Generics 버전으로 모든 것을 변환하는 것에 대해 미리 생각하고 있었기 때문에 복사 붙여 넣기로 불타졌습니다. 내 대답에 고정. – Danny

+0

모두에게 고마워. –

0

당신은 당신이 정적으로 할당 된 계좌 번호를 추적 할 수있는 정적 변수를

private static int accSeq = 0 
private Customer cust; 
private int accNum = 0; 
private double balance; 

Account(Customer C) { 
    cust = c; 
    balance = 0; 
    accNum = ++accSeq; 
} 
+0

이것을 시도하면 모두에게 0이됩니다. –

관련 문제