0

我有以下代码

class driver{
        static BankAccount GetAccount(Customer customer, char c) {
            BankAccount accSrc = customer.S;
            // savings account
            if (c =='S') {
                accSrc = customer.S;
            // loan account
            } else if (c =='L') {
                accSrc = customer.L;
            // checking account
            } else if (c =='C') {
                accSrc = customer.C;
            // auto loan account
            } else if (c =='A') {
                accSrc = customer.A;
            }
            return accSrc;
        }
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            Customer forrest = new Customer("Forrest Gump", 1, "42 New Street, New York, New York"); // me
            Customer random = new Customer("Random Name", 2, "44 New Street, New York, New York"); // imaginary partner
            //try{
                String input = JOptionPane.showInputDialog("Please enter your transaction information: ");
                Scanner s = new Scanner(input);
                int id  = Integer.parseInt(s.next());
                char action = Character.toUpperCase((s.next().charAt(0)));
                char accSrc = ' ';
                char accDest = ' ';
                double amount = 0;

                if(action == 'T'){
                    amount = s.nextDouble();
                    accSrc = s.next().charAt(0);
                    accDest = s.next().charAt(0);
                }else if(action == 'G' || action == 'I'){
                    accSrc = s.next().charAt(0);
                }else{
                    //if D,W
                    amount = s.nextDouble();
                    accSrc = s.next().charAt(0);
                }

            //}catch (IOException e){

            //}
                if(id==1){
                    return forrest;
                }else if(id == 2){
                    return random;
                }
                BankAccount src = GetAccount(forrest,  accSrc);
                System.out.print(src.getOwner().name);
                if(action == 'T'){
                    BankAccount dst = GetAccount(forrest, accDest);
                    src.transfer(amount, dst);
.

    ..
    }

    class Customer{
        protected String name;
        protected int id;
        protected String address;
        protected BankAccount C = new BankAccount(id, this, 0);
        protected BankAccount S = new BankAccount(id, this, 0);
        protected BankAccount A = new BankAccount(id, this, 0);
        protected BankAccount L = new BankAccount(id, this, 0);
    ...
    }

目前我正在硬编码 BankAccountsrc = GetAccount(forrest, accSrc);我如何继续编写代码,以便它返回一个给定 ID 号的客户实例(比如 1 给定返回 forrest,2 给定返回随机)?

4

3 回答 3

3

把你的课程放在一个Map例如

 Map<Integer, Customer> classMap = new HashMap<Integer, Customer>();
 Customer forrest =
        new Customer("Forrest Stallings", 1, "42 New Street, New York, New York"); 
 classMap.put(1, forrest );

 Customer random = 
        new Customer("Random Name", 2, "44 New Street, New York, New York");
 classMap.put(2, random );

然后只需将您的课程设置为:

Customer forrest= classMap.get(1); 
Customer random = classMap.get(2);
于 2012-11-09T21:15:02.103 回答
0

您需要将您的东西存储在列表中,然后通过其索引检索列表项。

于 2012-11-09T21:13:06.397 回答
0

更好

Customer customers[] = { forrest, random };

我可以用customer[id]

于 2012-11-09T23:32:34.907 回答