一个或多个具有相同名称的对象?

时间:2014-12-03 11:06:30

标签: java

我可能得错了标题,但我不知道还能说些什么。

我们的讲师今天给了我们这个代码:

    do {
        System.out.println("Enter an amount for a new account, or anything else to end: ");
        if(in.hasNextInt()) {
            int openBalance = in.nextInt();
            System.out.print("Enter account name: ");
            String name = in.next();
            // part I don't understand
            BankAccount newAccount = new BankAccount(name, openBalance); 
            bankAccountList.add(newAccount);
            // part I don't understand
        } else {
            finished = true;
        }
    } while(!finished);

我理解除粗体之外的一切(那么应该是大胆的但是代码是这样的),我们必须根据用户的需要制作尽可能多的银行账户,直到输入除了int之外的东西。

但不会

 BankAccount newAccount = new BankAccount(name, openBalance);

创建一个与之前帐户名称相同的对象? 如果有人能够解释代码,那将是惊人的。谢谢。

3 个答案:

答案 0 :(得分:2)

String name = in.next();

name在循环的每次迭代中应该是不同的(因为用户在每次迭代中输入一个新名称),因此每个帐户都有不同的名称。

当然,用户可以输入两次相同的名称,这会创建两个名称相同的帐户,但这是一个不同的问题。

答案 1 :(得分:0)

了解局部变量。在您的情况下,您创建的本地对象只对一次交互有效。它们可以再次创建,因为在下一次迭代中,先前的对象无效。

答案 2 :(得分:0)

整个代码处于循环中。对于每次迭代,用户必须输入open balance(int value)和Name(String value)。这两个值用作创建BankAccount类型对象的参数。

因此,每次使用用户输入的值创建对象时。如果用户为开放余额输入一些非整数值,则迭代将结束。