实验二:Java面向对象机制(2).pdf

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

实验二:Java面向对象机制(2)

学院(系)名称:

姓名学号专业

班级实验项目实验二:Java面向对象机制(2)

课程名称Java语言程序设计课程代码

实验地点

批改意见成绩

教师签字:

实验内容:

某银行有许多储户,每个储户可以拥有一个或多个帐号。现要求你开发一个软件,管理

银行储户与帐号业务。见图1。

Bank类中有一个customers集合,用来存储所有的Customer(储户)对象,addCustomer

方法用于向该集合中加储户,getCustomer方法根据下标值取某个储户,getNumOfCustomers

方法取储户总数,getCustomers方法返回储户的Iterator,以便获得每个储户对象。

Customer类有一个accounts集合,用来存储某个储户的所有Account(帐号)对象,

addAccount方法用于向该集合中加帐号,getAccount方法根据下标值取该储户的某个帐号,

getNumOfAccounts方法取该储户的帐号总数,getAccounts方法返回该储户的帐号的Iterator,

以便获得每个帐号对象。

Account类是抽象类,有一个balance属性,代表余额。deposit方法表示存款,amount参

数是存款额。withdraw方法表示取款,取款额amount如果超出了余额就会抛出透支异常,我

们需要自己定义一个OverdraftException类来表示这个异常,当抛出透支异常时,不进行取款

交易,并报告用户此项错误。

SavingsAccount类表示存款帐号,继承Account,新增一个属性interestRate,代表利率。

第1页共9页

CheckingAccount类表示大额存款帐号,也继承Account,它有一个叫canOverdraft的属性,

是一个boolean值,代表该帐号能否透支(true-能,false-否);它还有一个叫maxOverdraft

的属性,表示该帐号允许的最大透支额。这个类的withdraw(取款)方法需要考虑的因素比

较多:在发生透支时,如果帐号不允许透支(canOverdraft=false),则抛出OverdraftException

异常并退出交易;如果允许透支(canOverdraft=true),但透支额(amount-balance)超过最大

透支额的话,也抛出OverdraftException异常并退出交易;只有在不发生透支或透支额小于最

大透支额时交易才能正常进行。另外,在每次进行透支交易时,最大透支额(maxOverdraft)应

做调整,以便使该帐号的最大透支额随透支次数的增加而不断减少,从而可以避免透支的滥

用,阻止信用膨胀。CheckingAccount类有两个构造方法,只带一个参数的构造方法用来初始

化balance,同时设定canOverdraft=false,maxOverdraft=0.00。

CustomerReport类用来显示每个储户的姓名以及他所持有的帐号的类别和余额,以报表的

形式输出。

根据以上描述,创建一个TestBanking类,并在其main方法中添加若干储户和帐号,然

后模拟存款、取款业务,并最终输出一张完整的报表。

采用下表中的数据进行模拟:

帐号

储户姓名

SavingsAccountCheckingAccount

文档评论(0)

***** + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档