BankAcct
抽象メソッドを持つクラスを設計することになっていcomputeIntt()
ます。Save と Time は BankAcct の一種です。問題は、Interest と New Balance の表示を実装できないことです。
これが私の現在のコードです:
public abstract class BankAcct
{
private int accountNumber;
private String accountName;
private double bal;
public BankAcct(int act, String name, double m)
{
accountNumber = act;
accountName = name;
bal = m;
}
public double getBalance()
{
return bal;
}
public String getAccountName()
{
return accountName;
}
public int getAccountNumber()
{
return accountNumber;
}
public void deposit(double m)
{
bal+=m;
}
public void withdraw(double m)
{
bal-=m;
}
public abstract double computeInt();
}
public class Save extends BankAcct
{
public Save(int act, String name, double m)
{
super(act, name, m);
}
int act;
String name="";
double m;
public double computeInt()
{
return m * 0.0025;
}
}
public class Time extends BankAcct
{
public Time(int act, String name, double m)
{
super(act, name, m);
}
int act;
String name="";
double m;
public double computeInt()
{
return m * 0.033;
}
}
public class MainPr
{
public static void main(String[] args)
{
BankAcct sav = new Savings(1234, "ABC", 10000);
BankAcct td = new TimeDeposit(9876, "DEF", 20000);
// display the current balance
System.out.println(sav.getAccountName() + " with account number " +
sav.getAccountNumber() + " has a balance of " +
sav.getBalance());
System.out.println(td.getAccountName() + " with account number " +
td.getAccountNumber() + " has a balance of " +
td.getBalance());
// deposit money
sav.withdraw(5000.0);
// display current value with its interest
System.out.println("\n" + sav.getAccountName() + " with account number " +
sav.getAccountNumber() + " earned an interest of " +
sav.computeInt());
System.out.println(sav.getAccountName() + " with account number " +
sav.getAccountNumber() + " has a NEW BALANCE of " +
sav.getBalance());
td.deposit(2000.0);
System.out.println("\n" + td.getAccountName() + " with account number " +
td.getAccountNumber() + " earned an interest of " +
td.computeInt());
System.out.println(td.getAccountName() + " with account number " +
td.getAccountNumber() + " has a NEW BALANCE of " +
td.getBalance());
}
}
次のデータに対して 2 つのオブジェクトをインスタンス化する MainPr: Save のアカウント番号は 1234 です。ABCのアカウント名; 10,000の残高。Time の口座番号は 9876 です。アカウント名DEF; 残高20万。
これが出力になるはずです: CORRECT ONE
口座番号 1234 の ABC の残高は 10000.0 です。
口座番号 9876 の DEF の残高は 20000.0 です
口座番号 1234 の ABC の利息 25.0
口座番号 1234 の ABC の新しい残高は 5025.0 です。
口座番号 9876 の DEF 経過利息 660.0
口座番号 9876 の DEF の新しい残高は 22660.0 です
しかし、私のプログラムは間違った出力を生成します:
口座番号 1234 の ABC の残高は 10000.0 です。
口座番号 9876 の DEF の残高は 20000.0 です
口座番号 1234 の ABC の利息 0.0
口座番号 1234 の ABC の新しい残高は 5000.0 です。
口座番号 9876 の DEF 経過利息 0.0
口座番号 9876 の DEF の新しい残高は 22000.0 です
この場合、Save の金利は 0.25% で、時間の金利は 3.3% です。残高は預金か引き出しかによって異なります。
親切に私を助けてください。ありがとう