我试图为银行帐户制作一个简单的程序。我创建了一个名为Bank to make和instance的类,在主类中,main方法是,我创建了一个if语句,它将创建一个类的实例" Bank"取决于满足的条件。问题是我可以使用if语句之外的实例方法。我为对象类创建了两个构造函数,一个带有构造函数方法参数,另一个不带任何参数的方法,这就是使用if语句的原因。
public static void start() {
Scanner scanner = new Scanner(System.in);
System.out.println("Welcome to your banking app!");
System.out.println("What is your initial balance, enter below. If none enter : n");
String choice = scanner.nextLine();
if(choice.equals("n")){
Bank account1 = new Bank();
}
else{
System.out.println("Enter your initial balance :");
double ibalance = scanner.nextDouble();
Bank account1 = new Bank(ibalance);
}
System.out.println("Enter 1 to see balance Enter 2 to withdraw Enter 3 to deposit money Enter 4 to close account Enter 5 to exit");
choice = scanner.nextLine();
double amount = 0.0;
if(choice.equals("1")){
System.out.println("Balance is :" + account1.getBalance());
}
else if(choice.equals("2")){
System.out.println("Enter the amount to withdraw");
amount = scanner.nextInt();
account1.withdraw(amount);
}
else if(choice.equals("3")){
System.out.println("Enter the amount to deposit");
amount = scanner.nextInt();
account1.deposit(amount);
}
else if(choice.equals("4")){
account1.close();
}
else if(choice.equals("5")){
System.exit(0);
}
}
答案 0 :(得分:2)
将Bank对象声明在if else作用域之外,以便稍后可以访问它,将其初始化为 null 并为Bank
的新实例分配引用,具体取决于条件if-else
Bank account1 = null;
if(choice.equals("n")){
account1 = new Bank();
} else{
System.out.println("Enter your initial balance :");
double ibalance = scanner.nextDouble();
account1 = new Bank(ibalance);
}
答案 1 :(得分:2)
您的Bank对象只会存在于if子句中。应改为:
Bank account1 = null;
if (clause){
account1 = new Bank();
}else{
...
}
答案 2 :(得分:0)
创建未初始化的 Bank 类的实例。然后在需要的地方初始化它。请注意,account1变量是在嵌套条件语句之外创建的。
post_date
您希望在此实例中尽可能多地重用account1变量,而不是创建新实例。