Это всего лишь второй раз, когда я использую это, и в первый раз я получил действительно хорошую помощь, поэтому я надеюсь, что смогу получить дополнительную помощь!
Справочная информация:
Моя программа проверяет мой класс Account
, создавая объект, который содержит баланс и другие вещи.В инструкциях говорится, что мне нужно переопределить методы "Снятие" и "Депозит" в подклассе, чтобы отслеживать транзакцию.
Я сделал это, но он не использует текущий баланс, а вместо этого просто отправляет 0. Я хочу иметь возможность сохранить новый баланс, чтобы он фактически снимал или вносил средства из текущего баланса.
Извините, если это не имеет смысла, если требуется какое-либо разъяснение, я попытаюсь объяснить по-другому.
Ниже приведен мой фрагмент кода:
Примечание: Я не учел то, что уже работает (конструкторы и другие методы) , которое не имеет к этому никакого отношения:
Account.java
public class Account
{
private static double balance;
public void Withdraw(double withdrawAmount)
{
this.balance -= withdrawAmount;
}
public void Deposit(double depositAmount)
{
this.balance += depositAmount;
}
}
UserAccount.java
public class UserAccount extends Account
{
private ArrayList<Transactions> transactions = new ArrayList();
@Override
public void Withdraw(double withdrawAmount)
{
super.Withdraw(withdrawAmount);
Transactions thisTransaction = new Transactions('W',
withdrawAmount, this.AccBalance(), "Withdraw");
this.transactions.add(thisTransaction);
}
@Override
public void Deposit(double depositAmount)
{
super.Deposit(depositAmount);
Transactions thisTransaction = new Transactions('D',
depositAmount, this.AccBalance(), "Deposit");
this.transactions.add(thisTransaction);
}
public void fillTransactions(char type, double amount, double balance)
{
switch (type) {
case 'D':
this.Deposit(amount);
break;
case 'W':
this.Withdraw(amount);
break;
default:
System.out.println("ERROR fillTransactions");
break;
}
}
public static void main(String[] args) {
ArrayList<Transactions> copyTransactions;
UserAccount thisAccount = new UserAccount("George", 1122, 1000);
thisAccount.MutAIR(.015);
thisAccount.fillTransactions('D', 30, thisAccount.AccBalance());
thisAccount.fillTransactions('D', 40, thisAccount.AccBalance());
thisAccount.fillTransactions('D', 50, thisAccount.AccBalance());
thisAccount.fillTransactions('W', 5, thisAccount.AccBalance());
thisAccount.fillTransactions('W', 4, thisAccount.AccBalance());
thisAccount.fillTransactions('W', 2, thisAccount.AccBalance());
}
Класс Transactions
, который у меня естьсодержит тип (вывод или внесение) , сумму, которая снимается или вносится, и остаток.Что происходит, когда я вызываю суперкласс из переопределенных методов ввода или вывода, он устанавливает баланс в 0, поэтому он говорит, что баланс равен 50, или 40, или -5, когда я хочу получить исходный баланс с внесенной или выведенной валютой.
Если бы кто-нибудь мог помочь, это было бы удивительно!Я могу уточнить, если что-то смущает!Спасибо!