项目名称:Bank Account Management System 银行账户管理系统 简称BAM 项目描述:这是一个银行账户管理系统,用户可以操作自己的银行账户. 项目实施方式:这是一个同步练习,随着CoreJava课程的深入,这个项目将趋于完整,学员的任务是随着知识点的深入,完成每一个进阶的项目要求. 练习1:(面向对象基础语法) 创建entity包,编写一个账户类(Account), 属性变量: id:账户号码 长整数 password:账户密码 name:真实姓名 personId:身份证号码 字符串类型 balance:账户余额 方法: deposit: 存款方法,参数是double型的金额 withdraw:取款方法,参数是double型的金额 构造方法: 有参和无参,有参构造方法用于设置必要的属性 练习2:(封装) 将Account类作成完全封装,将各属性变量定义为private类型,增加相应的get,set方法 练习3:(继承,多态) 银行的客户分为两类,储蓄账户(SavingAccount)和信用账户(CreditAccount),区别在于储蓄账户不允许透支,而信用账户可以透支10000元。在entity包中为这两种用户编写相关的类,它们是Account的子类。 同时要求创建biz(业务)包,编写Bank类,属性: 1.当前所有的账户对象的集合,存放在数组中 2.当前账户数量 方法: 1.用户开户,需要的参数:id,密码,密码确认,姓名,身份证号码,账户类型,返回新创建的Account对象的账号,提示:用s1.equals(s2) 可以比较s1,s2两个字符串的值是否相等.账户类型是一个整数,为0的时候表示储蓄账户,为1的时候表示信用账户 2.用户登录,参数:id,密码 返回登录账户的账号 3.用户存款,参数:id,存款数额,返回void 4.用户取款,参数:id,取款数额,返回void 5.查询余额,参数:id,返回该账户的余额 double 用户会通过调用Bank对象以上的方法来操作自己的账户,请分析各个方法需要的参数 练习4:(语言高级特性,三个修饰符) 1.修改Account类,银行用户的账号(id)是自动生成的,初始值为100000,第一个开户的用户id为100001,第二个为100002,依此类推. 提示:构造对象的时候采用static属性为id赋值 Account类中如果将id声明为static,public static long id; 每个账户还需要有自己的id。 2.对于Account类,有两个方法,存款方法和取款方法,请修改这两个方法. 存款方法改为不允许子类修改 取款方法根据不同的子类而不同,因此,改为抽象方法,在两个子类中分别实现。 练习5:(接口) 将Bank类的方法抽象出来,定义一个接口,在TextView类中,应该和接口建立关联,减少界面和Bank对象的耦合度。 练习6:(Exception) 为BAM添加几个异常类,放在exception包中 BalanceNotEnoughException :用于取钱的时候余额不足的情况(包括账户余额超过透支额的情况) RegisterException:用于开户异常的情况,例如密码两次输入不一致等情况 LoginException:用户登录异常的情况,例如id错误,密码错误 并请妥善处理这些异常。 练习7: 建立一个包util.建立一个工具类.用于从控制台接受一个字符串并且将其输出。或者说从键盘接受参数。 练习8:建立一个包view. 利用文本输入工具制作命令行下的终端访问界面(TextView类),可以放在view包中.该类会维护Bank对象的引用,收集用户的输入,调用Bank中的相应方法,并将业务处理结果显示给用户. 在TextView类中,应该和接口建立关联,减少界面和Bank对象的耦合度。