[英]Java Programming using Objects/ Methods
我在存入和提取存款后無法獲得余額,取而代之的是,它會回到初始余額並進行操作。
我要求它提取2500,這應該讓我剩下17500,但是然后我將其存入3000,這應該給我20500,但是我卻得到23000。
另外,我的日期輸出始終為“ null”。
這是第一個Class文件。
import java.util.Date;
public class Account
{
private int id;
private double balance;
private double annualInterestRate;
private Date dateCreated;
private double withdraw;
private double deposit;
Account()
{
id = 1;
balance = 1;
annualInterestRate = 1;
}
Account(int newID, double newBalance, double newAnnualInterestRate)
{
id = newID;
balance = newBalance;
annualInterestRate = newAnnualInterestRate;
}
public int getId()
{
return id;
}
public double getBalance()
{
return balance;
}
public double getAnnualInterestRate()
{
return annualInterestRate;
}
public double getMonthlyInterestRate()
{
return (annualInterestRate / 12) / 100;
}
public double getMonthlyInterest()
{
return balance * getMonthlyInterestRate();
}
public double getWithdraw(double amount)
{
amount = balance - amount;
return amount;
}
public double getDeposit(double amount)
{
amount = balance + amount;
return amount;
}
public Date getDateCreated()
{
return dateCreated;
}
}
這是測試類文件
public class TestAccount
{
public static void main(String[] args)
{
Account A = new Account(1122, 20000, 4.5);
System.out.println("Account number: " + A.getId());
System.out.println("The Account balance is: $" + A.getBalance() + "0");
System.out.println("The Annual Interest Rate is: " + A.getAnnualInterestRate()+ "%");
System.out.println("The Account balance after a $2,500 withrawal is: " + A.getWithdraw(2500));
System.out.println("The Account balance after a $3,000 deposit is: " + A.getDeposit(3000));
System.out.println("The monthly interest earned is: " + A.getMonthlyInterest());
System.out.println("The account was created on: " + A.getDateCreated());
}
}
您正在修改局部變量amount
,而不是修改balance
。 在getWithdraw
,更改
amount = balance - amount;
至
balance = balance - amount;
同樣對於getDeposit
方法。
順便說一下,不清楚為什么要調用這些方法getWithdraw
和getDeposit
,因為這些方法分別進行了取款和存款。 我會叫他們withdraw
並deposit
。 我也沒有發現在兩種方法中都返回參數值amount
目的。 兩種方法都不需要返回任何東西,可以指定它們返回void
。
而且,沒有為dateCreated
分配任何內容,因此它為null
。 您可以為此實例變量添加一個setter方法。
在您的getWithdraw
和getDeposit
方法中,您可能應該更改balance
,而不是amount
。 也沒有理由從這些方法中返還amount
。
您永遠不會在我可以看到的任何地方創建Date
對象,因此您的日期為null
。 基於getDateCreated
方法的名稱,我猜應該將日期設置為創建帳戶的日期,因此您應該在Account
構造函數中進行設置。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.