简单银行应用程序 - 存款和取款(使用抽象和构造函数)(JAVA)



我需要帮助来弄清楚如何修复我的代码。我正在尝试允许使用菜单在银行存款和取款。发生的情况是,当我通过存款或取款选项时,值不会被存储,只是在循环再次开始时重置。我希望能够添加余额或外卖余额(有点像实际的银行(。在此代码中,我使用了2个类(Minibank和Function(。有谁知道我能做些什么来解决这个问题?(对不起,代码混乱(

import java.util.*; //import everything
import java.lang.*;
public class MiniBank extends Function {
public static void main(String[] args) {             
Scanner ask = new Scanner(System.in);
int menu = 3;
do{          
System.out.println("1:Deposit");
System.out.println("2:Withdraw");
System.out.println("3:Check Balance");
System.out.println("4:Exit");

switch (menu){
case 1:
Function Deposit = new Function() {};; 
Deposit.Deposit(ask);  
break;
case 2:
Function Withdraw = new Function() {};; 
Withdraw.Withdraw(ask);
break;
case 3:
Function Howmuch = new Function() {};; 
Howmuch.Money();
break;   
case 4:
System.out.println("Goodbye");
System.exit(0);    
}     
System.out.println("Select Following Options");
menu=ask.nextInt(); //menu option
}while (menu!=4);              
}
}
import java.util.*;
abstract public class Function{ 
protected double Balance;

public Function(){ 
//going to add something later
}
public void Deposit(Scanner ask){
System.out.println("Insert the amount put in");
double task = ask.nextDouble();
Balance = Balance + task;
System.out.println("Account balance: "+ Balance);
}
public void Withdraw(Scanner ask){
System.out.println("Insert the amount to take out");
double task = ask.nextDouble();
Balance = Balance - task;
System.out.println("Account balance: "+ Balance);
}
public void Money(){
System.out.println(Balance);
}
}

您不应该为switch的每个案例创建一个新的"Bank"(函数(。此外,您应该创建一个银行。像这样,

MiniBank mb = new MiniBank();
do {
// ...
switch (menu) {
case 1:
mb.Deposit(ask);
break;
case 2:
mb.Withdraw(ask);
break;
case 3:
mb.Money();
break;
case 4:
System.out.println("Goodbye");
System.exit(0);
}
// ...

此外,按照惯例,Java 方法名称应以小写字母开头(您的方法看起来像类(。

您每次都会创建一个Function的新实例,这意味着您不会重用Function中声明的余额字段。您只能使用一个Minibank实例来修复它,如下所示:

import java.util.*; //import everything
import java.lang.*;
public class MiniBank extends Function {
public static void main(String[] args) {             
Scanner ask = new Scanner(System.in);
Minibank bank = new Minibank(); // This is your object used for depositing and withdrawing
int menu = 3;
do{          
System.out.println("1:Deposit");
System.out.println("2:Withdraw");
System.out.println("3:Check Balance");
System.out.println("4:Exit");

switch (menu){
case 1: 
bank.Deposit(ask);  
break;
case 2:
bank.Withdraw(ask);
break;
case 3: 
bank.Money();
break;   
case 4:
System.out.println("Goodbye");
System.exit(0);    
}     
System.out.println("Select Following Options");
menu=ask.nextInt(); //menu option
}while (menu!=4);              
}
}

最新更新