将对象重置为零?

时间:2016-02-28 06:04:40

标签: java infinite-loop

大家好我知道这是一个奇怪的问题,但是一个对象可以回归zero吗?我问,因为我有一个巨大的设计缺陷,我正在运行一个基本的GUI,如果我在菜单上回答我想要的东西,它会继续使用相同的旧答案。

为了解决这个问题,我会再问下半部分,但后来我遇到了一个更糟糕的问题......我一直在问。我觉得自己陷入了困境,无论如何我都无法在我的编程书中找到reset或者解决这个问题。

Object[] menuPossibilities = {"Create a New Account", "Deposit", "Withdraw", "Display Balance", "Exit"};

Object menuValues = JOptionPane.showInputDialog(null, "Please pick an option from this menu: ",
            "input", JOptionPane.INFORMATION_MESSAGE, null, menuPossibilities, menuPossibilities [0]);
while (!menuValues.equals("Exit")){

    Bank newBank = new Bank();
    // Bank newBank1 = new Bank();
    // Bank newBank2 = new Bank(); Do the same thing as below but switch out
    // bank1 and bank2 as a substitute.
    ArrayList<BankAccount> bankList = newBank.getBankAccounts();

        if (menuValues.equals("Create a New Account")){

            newBank.openAccount();
        }

        else if (menuValues.equals("Deposit")){
            newBank.deposit();
        }
        else if (menuValues.equals("Withdraw")){
            newBank.withdraw();
        }
        else if (menuValues.equals("Display Balace")){
            newBank.deposit();
        }
        else if (menuValues.equals("Exit")){
            System.out.println("Thank you for using our service.");
        }

        Object menuValuesTWO = JOptionPane.showInputDialog(null, "Since you did not pick 5 please pick another option: ",
                    "input", JOptionPane.INFORMATION_MESSAGE, null, menuPossibilities, menuPossibilities [0]);

}

以上是我的代码,以防我不太清楚。但基本上如果我取出menuvalueTWO并点击创建银行帐户,那么它会循环回来并说"So wanna make another bank account?"

2 个答案:

答案 0 :(得分:0)

  

...一个物体可以归零吗?

除非某些方法明确地将其设置为零。

在这种情况下,问题通常是别的;例如,您实际上正在查看不同的对象

在您的示例中,您似乎在模仿和/或实施openAccountdepositwithdraw等操作方面犯了一些错误。我希望:

  • openAccount()应该返回其创建的BankAcount,并将其添加到银行的银行帐户列表中。

  • deposit()应该是对BankAccount的操作,并且应该使用一个参数来说明存入多少。

  • withdraw()应该是BankAccount上的操作,并且应该采用一个参数来说明要撤回多少。

等等。

(或者,如果depositwithdrawBank对象上的操作,那么他们需要另一个参数 - 帐号? - 来说明要对哪个帐户进行操作。)< / p>

答案 1 :(得分:0)

Object menuValuesTWO = JOptionPane.showInputDialog(null, "Since you did not pick 5 please pick another option: ",
                    "input", JOptionPane.INFORMATION_MESSAGE, null, menuPossibilities, menuPossibilities [0]);

应该是

menuValues = JOptionPane.showInputDialog(null, "Since you did not pick 5 please pick another option: ",
                    "input", JOptionPane.INFORMATION_MESSAGE, null, menuPossibilities, menuPossibilities [0]);

我无法验证更改,因为我无法运行您的代码。但正如@Stephen C建议你必须使用你正在循环的相同对象。