Java 如何生成顺序帐号?

Java 如何生成顺序帐号?,java,Java,我正在制作一个银行账户程序,对于我的构造器,我希望它添加客户名称(它是这样做的),并且我还希望它为每个添加的客户自动生成一个账号,从1到n个客户开始(它不是这样做的…),如果我有3个名称,当我将这些名称添加到“BankDataBase”类的ArrayList中时,它会为每个帐户打印num 3 公共类客户 { 私有最终字符串fname; 私有最终字符串lname; 客户(字符串fn,字符串ln) { fname=fn; lname=ln; } 公共类帐户 { 私人客户; 私有int accNum=

我正在制作一个银行账户程序,对于我的构造器,我希望它添加客户名称(它是这样做的),并且我还希望它为每个添加的客户自动生成一个账号,从1到n个客户开始(它不是这样做的…),如果我有3个名称,当我将这些名称添加到“BankDataBase”类的ArrayList中时,它会为每个帐户打印num 3

公共类客户
{
私有最终字符串fname;
私有最终字符串lname;
客户(字符串fn,字符串ln)
{
fname=fn;
lname=ln;
}
公共类帐户
{
私人客户;
私有int accNum=0;
私人双平衡;
账户(客户c)
{
cust=c;
余额=0;
accNum++;
}
公共类数据库
{
私人帐户帐户;
int getAcc=0;
ArrayList chaseAccts=新的ArrayList();
公共作废账户(账户名称)
{
accCust=me;
chaseAccts.add(我);
}
公共空间显示()
{
对于(int i=0;i

提前感谢。

您可以尝试创建一个静态变量

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

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

您可以静态跟踪分配的帐号,并将新帐号分配给系列中的下一个帐号

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
的列表,因此可以将整个循环编写为:

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

等等…为他们的每个账号打印3个?那为什么还要麻烦账号呢?我认为账号应该是唯一的。在数据库中使用
sequence
列类型。你能发布更多的代码吗,比如你在哪里调用账号构造函数并将其添加到列表中?从你这里看到的情况来看,每个账号都是唯一的将使用
1
accNum
(在构造函数中初始化为0并递增一次).它正在打印3,我希望它为每个帐户打印1、2、3等。Braj,我们还没有了解序列,教授只想要他目前教给我们的代码。@SierraBravo-你是在写accCust的值,而不是ArrayList中的元素吗?这每次都会给你相同的值,因为它总是指向最近添加的元素。尝试此操作后,我为每个人都获得了0。啊哈!它成功了,但我必须将您的代码从
accCust.get(I).getAcctNum();
更改为
chaseAccts.get(I).getAcctNum())
哈哈,你说得对。我被复制粘贴烧坏了,因为我在考虑将整个过程转换为循环的泛型版本。在我的回答中修复了它。非常感谢大家。
public void display()
{
    for(Account account : chaseAccts) {
        System.out.println(account.getAccount() + " " + account.getAccNum());
    }
}