设计与实现Account类及其扩展:银行账户模型

需积分: 9 0 下载量 103 浏览量 更新于2024-07-09 收藏 361KB DOC 举报
实验1主要围绕Java中的类和对象进行实践,涉及多个关键知识点。首先,我们构建了一个名为`Account`的类,这是实验的核心部分。这个类具有以下特性: 1. 私有数据域: - `id`:一个int类型的账户标识,默认值为0,用于唯一标识每个账户。 - `balance`:一个double类型的余额,初始值为0,表示账户内的资金总额。 - `annualInterestRate`:一个double类型的年利率,同样默认值为0,表示账户的计息规则。 - `dateCreate`:一个Date类型的开户日期,记录账户创建的时间。 2. 构造方法: - 无参构造方法:用于创建默认账户。 - 带参数构造方法:接受id和初始余额作为输入,用于创建指定的账户实例。 3. 访问器和修改器: - 提供getter和setter方法,以便外部代码读取和修改这些私有数据。 4. 其他方法: - `getMonthInterestRate()`:计算并返回月利率。 - `withDraw(double amount)`:允许提取一定金额,更新余额和可能的利息计算。 - `deposit(double amount)`:允许存入资金,增加余额。 接下来,实验扩展到银行账户模型,设计了`CheckingAccount`和`SavingAccount`两个子类。`CheckingAccount`有透支限制,而`SavingAccount`则不允许透支。这些子类继承自`Account`,并可能包含额外的属性和行为,如透支额度和特殊的转账规则。 在第三个阶段,对`Account`类进行了进一步扩展: - 添加了一个`String`类型的`name`属性,存储客户的名字。 - 新增构造方法:接受名字、id和初始收支额,用于创建具有完整信息的账户实例。 - 添加`transactions`数据域:一个ArrayList,用于存储与账户相关的交易记录,涉及Transaction类。 最后,实验要求编写测试程序,通过创建不同类型的账户(如`Account`、`SavingAccount`和`CheckingAccount`),执行提款、存款操作,并显示余额、月利息以及开户日期。同时,还会演示如何使用`toString()`方法展示账户的详细信息以及交易记录。 通过这次实验,学生将深入理解Java类的设计、构造方法、继承、多态以及数据封装的概念,同时还锻炼了面向对象编程的实际操作能力。UML图在此过程中起到了可视化和结构化设计的作用,帮助理解和组织代码结构。