Java 绕过初始化变量

Java 绕过初始化变量,java,initialization,Java,Initialization,我只是在玩弄Java代码,看看我能做什么,不能做什么。我遇到了一个我创建的字符串变量的问题,它说它可能没有初始化。我知道问题是什么,为什么它可能没有被初始化,但我不知道如何修复它,我尝试过将代码放在不同的位置,创建或删除字符串,但没有任何效果。这一切都导致了同样的问题。 方法代码: public class BankAccount { private int balance; private String name; public BankAccount(String

我只是在玩弄Java代码,看看我能做什么,不能做什么。我遇到了一个我创建的字符串变量的问题,它说它可能没有初始化。我知道问题是什么,为什么它可能没有被初始化,但我不知道如何修复它,我尝试过将代码放在不同的位置,创建或删除字符串,但没有任何效果。这一切都导致了同样的问题。 方法代码:

public class BankAccount {
    private int balance;
    private String name;

    public BankAccount(String n) {
        n = name;
    }

    public void deposit(int dep) {
        balance = balance + dep;
    }

    public void withdrawl(int wit) {
        balance = balance - wit;
    }

    public int getBalance() {
        return balance;
    }
}
测试仪代码:

import java.util.Scanner;

public class BankTester {
    public static void main(String[] args) {
        int i = 0;
        int dep;
        int wit;
        int d;
        String dw;
        String alm;

        Scanner input = new Scanner(System.in);

        System.out.print("Name Of Bank Account: ");
        String name = input.next();
        BankAccount account = new BankAccount(name);

        while(true) {
           System.out.println("Open Account? (y/n): ");
           String open = input.next();

           if (open.equals("y")) {
                System.out.print("\f");
                System.out.println("Account Open!");
                break;
           } else if (open.equals("n")) {
                System.exit(1);
           } else {
                System.out.print("\f");
                i++;
                System.out.println("Incorrect Syntax");
                System.out.println("Attempts: " + i);
           }
        }
        while(true) {
            System.out.println();
            System.out.println("Your balance is " + account.getBalance());
            if (account.getBalance() == 0) {
                System.out.print("\f");
                System.out.println("It seems you don't have any money in your account..");
                System.out.print("Would you like to deposit some? (y/n): ");
                alm = input.next();
            } else {
                System.out.print("\f");
                System.out.println("Would you like to do anything with your account " + name + "? (y/n)");
                alm = input.next();
            }
            while (true) {
                if (account.getBalance() > 0) {
                   if (alm.equals("y")) {
                       System.out.print("What would you like to do? (deposit/withdrawl): ");
                       dw = input.next();
                       break;
                   } else if (alm.equals("n")) {
                       System.exit(1);
                   } else {
                       System.out.print("\f");
                       System.out.println("Incorrect Syntax");
                   }
                }
                if (account.getBalance() == 0) {
                    if (alm.equals("y")) {
                       System.out.print("\f");
                       System.out.println("How much money would you like to deposit?");
                       System.out.print("Amount: ");
                       dep = input.nextInt();
                       account.deposit(dep);
                       break;
                   } else if (alm.equals("n")) {
                       System.exit(1);
                   } else {
                       System.out.print("\f");
                       System.out.println("Incorrect Syntax");
                   }
                }
            }
            if (dw.equals("deposit")) {
                System.out.print("\f");
                System.out.println("How much money would you like to deposit?");
                System.out.print("Amount: ");
                dep = input.nextInt();
                account.deposit(dep);
            }
        }
    }
}
它的底部写着:

if (dw.equals("deposit")) {
                System.out.print("\f");
                System.out.println("How much money would you like to deposit?");
                System.out.print("Amount: ");
                dep = input.nextInt();
                account.deposit(dep);
            }

“变量dw可能尚未初始化”是我得到的错误。如何绕过此if语句,使其忽略,除非余额大于0?

您可以在声明时对其进行初始化:

String dw=”“