1

これは私のコードの一部です (後に BankAccount クラスがあります):

import java.util.Scanner; //This library is added

public class BankSystem_
{
    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner(System.in);//Scanner object to read input

        BankAccount ba = null;


        //Define variables
        int task=0;
        int accountNumber=0;
        String accountName="unknown";
        double balance=0;
        double interestRate=.05;

        do
        {       
        System.out.println("1.\t Open new account");
        System.out.println("2.\t Current Balance");
        System.out.println("3.\t Deposit");
        System.out.println("4.\t Withdrawal");
        System.out.println("5.\t Change Interest Rate");
        System.out.println("6.\t Bank Statement");
        System.out.println("7.\t Exit");
        System.out.println("Please create an account and choose a task: ");
        task=keyboard.nextInt();
            switch (task)
            {
                case 1:
                    System.out.print("What is the account name?: ");
                    accountName=keyboard.nextLine();
                    System.out.print("\nWhat is the account number?: ");
                    accountNumber=keyboard.nextInt();
                    System.out.print("\nAmount of money to start your account?: ");
                    balance=keyboard.nextDouble();
                        while (balance < 100)
                        {
                            System.out.println("The minimum amount to open a new account should be $100");
                            System.out.print("Amount of money to start your account?: ");
                            balance=keyboard.nextDouble();
                        }   
                    BankAccount ba = new BankAccount(accountName,accountNumber,balance,interestRate);
                    System.out.print(ba.NewAccount());  
                    break;
                case 2:
                    if (ba != null)
                    {
                    System.out.print(ba.Balance());
                    }
                    break;
                case 3:
                    if (ba != null)
                    {
                    System.out.print(ba.Deposit());
                    }
                    break;
                case 4:
                    if (ba != null)
                    {
                    System.out.print(ba.Withdrawal());
                    }
                    break;
                case 5: 
                    if (ba != null)
                    {       
                    System.out.print(ba.ChangeInterestRate());
                    }
                    break;
                case 6:
                    if (ba != null)
                    {
                    System.out.print(ba.BankStatement());
                    }
                    break;
                case 7:
                    System.exit(0);
                    break;
            }
        }while(task >=1 && task <=7);
    }
}

*コードの目的は、タスク 1 を選択する前にタスク 2 から 6 を選択するユーザーに警告することです。したがって、続行するには BankAccount のオブジェクトが null でないかどうかを確認する必要があります。

私が含めるときはいつでも:

BankAccount ba = null;

後でコードに含めます。

BankAccount ba = new BankAccount(accountName,accountNumber,balance,interestRate);

オブジェクトを宣言するために、コンパイラは私にそれを教えてくれますvariable ba is already defined in method main(String[])

しかし、null を削除すると、コンパイラは次のように伝えます。

variable ba might not have been initialized if (ba != null)

ここで何か問題がありますか?

4

3 に答える 3

1

変えるだけ

BankAccount ba = new BankAccount(accountName,accountNumber,balance,interestRate);

ba = new BankAccount(accountName,accountNumber,balance,interestRate);

メソッドの先頭で変数としてすでに定義されている ba の内容を変更したいためです。したがって、同じ名前の変数を再度宣言することはできません。既に存在するものを変更したいとします。

于 2013-07-06T23:01:58.950 に答える