Java ArrayList银行帐户

Java ArrayList银行帐户,java,class,arraylist,account,bank,Java,Class,Arraylist,Account,Bank,因此,我正在创建一个使用ArrayList的银行帐户程序。该程序显示一个菜单,客户可以在其中存款、取款、显示帐户信息和检查余额。数组列表存储客户对象,并且在用户存款/取款等情况下应该能够更新 到目前为止,我还不确定如何调用Customer类中的存款、取款、显示帐户信息和检查余额的方法,并让它们正确访问数组列表对象 任何关于我所缺少的东西的帮助或建议都会非常有用 我现在遇到的错误是:找不到符号 符号:变量customerID 位置:display and balance方法中所有变量的java.u

因此,我正在创建一个使用ArrayList的银行帐户程序。该程序显示一个菜单,客户可以在其中存款、取款、显示帐户信息和检查余额。数组列表存储客户对象,并且在用户存款/取款等情况下应该能够更新

到目前为止,我还不确定如何调用Customer类中的存款、取款、显示帐户信息和检查余额的方法,并让它们正确访问数组列表对象

任何关于我所缺少的东西的帮助或建议都会非常有用

我现在遇到的错误是:找不到符号 符号:变量customerID 位置:display and balance方法中所有变量的java.util.ArrayList类

找不到符号 符号:构造函数客户() 位置:类taylor.Customer当我尝试创建客户实例时

当我试图调用方法并传入数组列表帐户时,taylor.Customer中的display(java.util.ArrayList)不能应用于(taylor.Customer)

测试仪等级:

package taylor; 
import java.util.ArrayList;
import java.util.Scanner;

public class TestBank{

  public static void main(String args[]){


    ArrayList<Customer> accounts = new ArrayList<Customer>();

    Customer customer1 = new Customer(1, "Savings", "US Dollars", 800);
    Customer customer2 = new Customer(2, "Checking", "Euro", 1900);
    Customer customer3 = new Customer(3, "Checking", "US Dollars", 8000);

    accounts.add(customer1);
    accounts.add(customer2);
    accounts.add(customer3);


    int customerID=4;
    String choice;
    int deposit;
    int withdraw;
    Scanner in = new Scanner(System.in);
    Customer operation = new Customer();
    boolean flag = true;

    String accountType;
    String currencyType;
    int balance;

    while(flag){
      System.out.println("Select a choice:");
      System.out.println("1. Existing customer");
      System.out.println("2. New customer");   
      System.out.println("3. Quit");


      String input = in.next();

        //existing user
        if(input.equals("1")){

          System.out.println("Enter CustomerID: ");
          customerID = in.nextInt();


          System.out.println("Would you like to: ");
          System.out.println("1. Deposit ");
          System.out.println("2. Withdraw ");
          System.out.println("3. Display account info ");
          System.out.println("4. Check balance ");

          choice = in.next();

          if(choice.equals("1")){
            System.out.println("How much would you like to deposit?");
            deposit = in.nextInt();
            operation.deposit(deposit);
          }

          else if (choice.equals("2")){
           System.out.println("How much would you like to withdraw?");
            withdraw = in.nextInt(); 
            operation.withdraw(withdraw);

          }

          else if (choice.equals("3")){
            operation.display(accounts.get(customerID));
          }

          else if (choice.equals("4"))
            operation.balance(accounts.get(customerID));

          else
            System.out.println("Invalid");
        }



        //new user
         else if(input.equals("2")){
          //add new user to arraylist

           int newID = customerID + 1;

           System.out.println("Enter account type: ");
           accountType = in.next(); 
           System.out.println("Enter currency type: "); 
           currencyType = in.next();
           System.out.println("Enter initial balance: ");
           balance = in.nextInt(); 

           System.out.println("Your customer ID will be: " + newID);


           accounts.add(new Customer(newID, accountType, currencyType, balance));


        }

        else if(input.equals("3")){

          System.out.println("Thanks for using this bank!");
          flag = false;
        }


        else{

          System.out.println("Invalid");

        }
      }

    }
}
package;
导入java.util.ArrayList;
导入java.util.Scanner;
公共类测试库{
公共静态void main(字符串参数[]){
ArrayList accounts=新的ArrayList();
客户1=新客户(1,“储蓄”,“美元”,800);
客户2=新客户(2,“支票”,“欧元”,1900);
客户3=新客户(3,“支票”,“美元”,8000);
账户。添加(客户1);
账户。添加(客户2);
账户。添加(客户3);
int customerID=4;
字符串选择;
内部存款;
int退出;
扫描仪输入=新扫描仪(系统输入);
客户操作=新客户();
布尔标志=真;
字符串帐户类型;
字符串类型;
国际收支平衡;
while(旗帜){
System.out.println(“选择一个选项:”);
System.out.println(“1.现有客户”);
System.out.println(“2.新客户”);
System.out.println(“3.Quit”);
字符串输入=in.next();
//现有用户
如果(输入等于(“1”)){
System.out.println(“输入CustomerID:”);
customerID=in.nextInt();
System.out.println(“您想:”);
系统输出打印(“1.存款”);
系统输出打印项次(“2.收回”);
System.out.println(“3.显示账户信息”);
系统输出打印项次(“4.检查余额”);
choice=in.next();
if(选择等于(“1”)){
System.out.println(“您想存多少?”;
存款=in.nextInt();
经营.押金(押金);
}
else if(选择等于(“2”)){
System.out.println(“您想提取多少?”);
撤回=在.nextInt()中;
操作。撤回(撤回);
}
else if(选择等于(“3”)){
操作.显示(accounts.get(customerID));
}
else if(选择等于(“4”))
操作.余额(accounts.get(customerID));
其他的
System.out.println(“无效”);
}
//新用户
else if(输入等于(“2”)){
//将新用户添加到arraylist
int newID=customerID+1;
System.out.println(“输入帐户类型:”);
accountType=in.next();
System.out.println(“输入货币类型:”);
currencyType=in.next();
System.out.println(“输入初始余额:”);
余额=in.nextInt();
System.out.println(“您的客户ID将是:“+newID”);
accounts.add(新客户(newID,accountType,currencyType,balance));
}
else if(输入等于(“3”)){
System.out.println(“感谢使用此银行!”);
flag=false;
}
否则{
System.out.println(“无效”);
}
}
}
}
客户类别:

package taylor; 
import java.util.Scanner; 
import java.util.ArrayList;

public class Customer{

  String accountType, currencyType, info; 
  int customerID, balance, amount;
  Scanner input = new Scanner(System.in);


  public Customer(int customerID, String accountType, String currencyType,  int balance){
    this.accountType = accountType;
    this.currencyType = currencyType; 
    this.customerID = customerID;
    this.balance = balance; 
    this.amount = amount; 
  }

  public int deposit(int amount){

    amount = input.nextInt();
    if (amount >= 500) {
      System.out.println("Invalid");

    }
    else{
      balance = balance + amount;

    }
    return balance;
  }

  public int withdraw(int amount){

    if (balance < amount) {
      System.out.println("Invalid amount.");
    }
    else if (amount >= 500) {
      System.out.println("Invalid");
    }
    else {
      balance = balance - amount;

    }
    return balance;
  }


  public void display(ArrayList<Customer> accounts) {
    System.out.println("CustomerID:" + accounts.customerID);
    System.out.println("Account Type:" + accounts.accountType);
    System.out.println("Currency Type: " + accounts.currencyType); 
    System.out.println("Balance:" + accounts.balance);

  }

  public  void balance(ArrayList<Customer> accounts) {
    System.out.println("Balance:" + accounts.balance);
  }





}
package;
导入java.util.Scanner;
导入java.util.ArrayList;
公共类客户{
字符串accountType、currencyType、info;
int customerID、余额、金额;
扫描仪输入=新扫描仪(System.in);
公共客户(int customerID、字符串accountType、字符串currencyType、int balance){
this.accountType=accountType;
this.currencyType=currencyType;
this.customerID=customerID;
这个平衡=平衡;
这个。金额=金额;
}
公共整数存款(整数金额){
amount=input.nextInt();
如果(金额>=500){
System.out.println(“无效”);
}
否则{
余额=余额+金额;
}
收益余额;
}
公共整数取款(整数金额){
如果(余额<金额){
System.out.println(“无效金额”);
}
否则,如果(金额>=500){
System.out.println(“无效”);
}
否则{
余额=余额-金额;
}
收益余额;
}
公共作废显示(ArrayList帐户){
System.out.println(“CustomerID:+accounts.CustomerID”);
System.out.println(“账户类型:“+accounts.accountType”);
System.out.println(“货币类型:“+账户.currencyType”);
System.out.println(“余额:+账户.余额”);
}
公共无效余额(ArrayList账户){
System.out.println(“余额:+账户.余额”);
}
}

问题是您从未初始化BankAccount中的任何字段。从BankAccount构造函数中删除
void
,使其成为构造函数,并在TestBank中构建类时使用该构造函数

由于这些字段与Customer中的字段重复,因此最好执行类似于
Customer.deposit(amount)
等操作。删除BankAccount类,将方法移动到Customer,并将参数
int amount
添加到使用amount的方法中。然后在TestBank类中更改deposit等方法调用,使其具有amount参数

而且,