public class Account {
public double balance ;
public double deposite;
public double withdraw;
public Account(double balance) {
this.balance = balance;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public double getDeposite() {
balance = balance + deposite;
return deposite;
}
public void setDeposite(double deposite) {
this.deposite = deposite;
}
public double getWithdraw() {
return withdraw;
}
public void setWithdraw(double withdraw) {
this.withdraw = withdraw;
if(withdraw <= balance){
balance = balance - withdraw;
}
}
public boolean withdraw(double wamt)
{
boolean result = false;
if(withdraw <= wamt)
{
balance= balance - withdraw;
return true;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
}
我的客户班
public class Customer {
private String firstName;
private String lastName;
Account account;
public Customer(String firstName, String lastName) {
this.firstName = firstName;
this.lastName = lastName;
//this.account = account;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public Account getAccount() {
return account;
}
public void setAccount(Account account) {
this.account = account; } }
public class BankProjectDemo {
public static void main(String[] args) {
double balance = 500;
Customer cust = new Customer("asasd0","asdasda");
Account accnt = new Account(balance);
System.out.println("Creating customer: " +cust.getFirstName());
accnt.setWithdraw(150);
accnt.setDeposite(22.50);
System.out.println("Withdraw1 "+accnt.getWithdraw());
System.out.println("Depsoite "+accnt.getDeposite());
Account accnt1 = new Account(balance);
accnt1.setWithdraw(47.62);
System.out.println("Withdraw2 "+accnt1.getWithdraw()+" " + accnt1.withdraw(balance));
System.out.println("Balance " + accnt.getBalance());}}
Run Code Online (Sandbox Code Playgroud)
我正在尝试计算一个简单的银行函数.我通过一个方法从执行类到另一个传递了两个撤销值150和47.62.但它需要两次47.62并且给出错误的结果这里是执行类.
在你的
public void setWithdraw(double withdraw) {
this.withdraw = withdraw;
if(withdraw <= balance){
balance = balance - withdraw;
}
}
Run Code Online (Sandbox Code Playgroud)
你减少了一次和你的余额
public boolean withdraw(double wamt)
{
boolean result = false;
if(withdraw <= wamt)
{
balance= balance - withdraw;
return true;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)
您再次减少您的余额,因此双退出当你打电话accnt1.setWithdraw(47.62);,然后accnt1.withdraw(balance);在
accnt1.setWithdraw(47.62);
System.out.println("Withdraw2 "+accnt1.getWithdraw()+" " + accnt1.withdraw(balance));
Run Code Online (Sandbox Code Playgroud)
更改您setWithdraw(double withdraw)的排除
if(withdraw <= balance){
balance = balance - withdraw;
}
Run Code Online (Sandbox Code Playgroud)
即
public void setWithdraw(double withdraw) {
this.withdraw = withdraw;
}
Run Code Online (Sandbox Code Playgroud)
而且你的withdraw()函数中不需要参数wamt.
即
public boolean withdraw()
{
boolean result = false;
if(withdraw <= balance)
{
balance= balance - withdraw;
return true;
}
return result;
}
Run Code Online (Sandbox Code Playgroud)