-3

我正在创建一个银行应用程序,我需要从数字 1 开始生成一个客户编号,跟踪该数字,以便每次进入循环时它都不会重复并将其存储到我可以使用的 int 变量中收集值并将其传递给循环外的 customerNumber 变量。我尝试了一些类似数组列表和数组的东西,但是在将值传递给我想要的变量时遇到了麻烦。在此先感谢并为我可怕的noobishness道歉......我是编程新手......这是我到目前为止所得到的:

import java.util.ArrayList;

public class Bank{

    public void addCustomer(String name, int telephone, String email, String    profession) {
        ArrayList customerList = new ArrayList();
        Customer customer = new Customer();
        customerList.add(customer);
    }
}

public class Customer{
    private String name;
    private int telephone;
    private String email;
    private String profession;
    private int customerNumber;

    public Customer() {

    }
}

public class Menu {
    Scanner sc = new Scanner(System.in);
    Bank bank = new Bank();


        private void createCustomer() {
        String name, email, profession;
        int telephone, customerNumber;

        System.out.println("Enter the customer's number: ");
        name = sc.nextLine();
        System.out.println("Enter the customer's telephone: ");
        telephone = sc.nextInt();
        System.out.println("Enter the customer's email: ");
        email = sc.nextLine();
        System.out.println("Enter the customer's profession: ");
        profession = sc.nextLine();
            bank.addCustomer(name, telephone, email, profession);
    }
}
4

1 回答 1

0

您可以做的一件事是创建一个单例类,并在每次需要时请求一个数字。单例类保留一个已经使用过的数字列表,因此可以返回一个之前没有使用过的数字。

如果您还需要在应用程序重新启动后生成新号码,那么您可以将所有号码存储在一个文件中,并在需要时读取该文件。

单例类是一个最多可以有 1 个实例的类。您可以通过将构造函数设为私有并创建公共静态方法(通常称为 getInstance() 之类的方法)来获取此类的实例来实现此目的。这个 getInstance() 将 ref 返回给唯一的实例,如果还没有创建实例,它首先创建一个。然后,这个唯一的实例知道所有正在使用的帐号(在你的情况下),不管这个类的实例多久被请求一次。这个类的职责是维护帐户 nrs:创建一个 nr,打印它们,保存它们,读取它们,......

例子:

private AccoutnNr singleInstance;

private AccountNr(){
}

public AccountNr getInstance(){
    if (singleInstance == null) {
        singleInstance = new AccountNr();
    }

    return singleInstance;
}

public int getAccountNr{
    // do whatever is needed to create an account nr
}

more methods if you need to do more than creating account numbers
于 2015-06-24T20:53:18.047 回答