为bankaccount java中的存款和取款添加日期历史记录列表

为bankaccount java中的存款和取款添加日期历史记录列表,java,class,date,arraylist,Java,Class,Date,Arraylist,我为这个问题绞尽脑汁已有一段时间了。我想在我的银行账户程序中添加取款和存款的历史列表。我使用以下方法创建了一个子类Transaction to my Superklas Account: import java.util.*; public class Transaction extends Account{ private double amount; public String addDeposit() { Account newDep = new Account();

我为这个问题绞尽脑汁已有一段时间了。我想在我的银行账户程序中添加取款和存款的历史列表。我使用以下方法创建了一个子类Transaction to my Superklas Account:

import java.util.*;


public class Transaction extends Account{
private double amount;

public String addDeposit() {
    Account newDep = new Account();
    Date date = new Date();
    newDep.deposit(amount); 
    return date + "\tIN: " + amount + "\t" + getBalance();  
}

public String addWithdraw() {
    Account newWith = new Account();
    Date date = new Date();
    newWith.withdraw(amount);   
    return date + "\tUT: " + amount + "\t" + getBalance();  
}

public String getTransactionHistory()
{
    return;
}
}

我想添加一个if语句,如果是取款或存款,则打印该语句。但是我该怎么做呢?我甚至不确定这是将事务放入另一个子类的最简单方法。

将此类信息表示为类的实例,而不是字符串

正如前面所讨论的,您需要一个不同的类设计。您应该有一个代表银行帐户的Account类,其成员(字段)表示打开的日期时间、关闭的日期时间、共同所有者的集合(必须至少有一个)等等。每个事务都记录在单独的类transaction中。交易不从帐户扩展。相反,帐户包含事务实例的集合。Transaction类将包含一些成员,例如交易的日期和时间、客户是什么人(共同所有人或可能是其他人或某个法律实体)、执行交易的工作人员、金额以及是存款还是取款


大提示:与java捆绑的java.util.Date和.Calendar类是出了名的麻烦。避开它们。在Java8中,它们已被新的Java.time包所取代。或者使用Joda时间图书馆。学习在数据库和大多数编程中使用UTC指定时区。调整到一个时区,仅用于在UI中显示以及您的业务逻辑需要它的地方。

对我来说,让
事务扩展帐户
似乎是不对的,因为这意味着
事务
帐户
的一种类型,也就是说,所有
事务
也都是
帐户
。这不符合我对什么是交易和账户的真实理解。@DavidWallace好的,我把它作为自己的一个类。你对如何使它工作有什么建议吗?如何使用transactionday获取取款和存款……在我看来,您需要一个
列表
作为
帐户
类的字段。帐户有一个交易列表。然后,每次交易时,你都会在列表中添加一些内容。@DavidWallace是的,这正是我想要的。我有一个ArrayList,账户中有交易,但我不知道如何获取存款和取款,以及列表中的日期…我认为您的
交易
类需要有一个金额和日期作为字段。可能还有一个额外的字段来指示是存款还是取款(尽管有其他方法来处理这个问题,例如,取款时您可能总是有一个负数)。然后,每次处理
帐户上的存款或取款时,您都可以创建其中一个对象。