变量已在范围中定义

时间:2018-08-26 08:35:43

标签: java

我只是想说我是Java的新手,我一直在练习并使LITTLE变得更好。我正在尝试建立一个非常简单的银行系统,在其中您可以选择创建帐户,存款和取款。不过,目前我有点受阻,希望有人能帮助我。

我试图从用户那里获取输入,然后使用参数中的用户输入创建一个新的对象实例,这给了我错误。这是给我错误的代码行,谢谢!

它在提示我:userName String变量的bankAccount对象创建行上出现错误。

case 1:
                System.out.println("Please Enter Your Name: ");
                String userName = input.nextLine();
                System.out.println("Please Enter a 4 digit pin number: ");
                int pinNumber = input.nextInt();
                int accountNumber = rand.nextInt(5100 - 1100) + 1000;
                System.out.println("Account Created with the following credentials:\n " +
                        "Name: " + userName + "\n" +
                        "Account Number: " + accountNumber + "\n" +
                        "Pin Number: " + pinNumber);
                bankAccount userName = new bankAccount(userName, accountNumber);
                break;

2 个答案:

答案 0 :(得分:1)

使用Java,即使数据类型不同,也不能使用相同的名称创建局部变量。

userName已经用作String变量,因此您不能创建名为bankAccount的新userName。您可以将其命名为userAccount

示例:

 bankAccount userAccount = new bankAccount(userName, accountNumber);

然后您可以将其添加到数组或Map中,以便以后引用该特定userAccount。

bankAccount[] accounts = new bankAccount[];
//several lines of code
bankAccount[0] = userAccount;

Map<String, bankAccount> bankAccount accounts = new HashMap<String, bankAcount>();
//several lines of code
bankAccount.put(userAccount.userName, userAccount);

要检索某个用户的userAccount,可以稍后在程序中进行。

bankAccount userAccount = bankAccount.get("bob");

这是获取具有"bob"作为用户名的bankAccount。

我想您是作为一个独立的项目来做的。如果有时间,最好从codecademy学习一些Java,以更好地了解基础知识。

答案 1 :(得分:0)

您已经在第2行和第10行中两次创建了变量userName。在Java中,即使它们具有两种类型,也无法创建相同的变量名。