项目介绍与功能演示
黑马银行ATM系统技术选型分析:
学习本项目,你将至少得到如下收获:
1、优秀的面向对象编程能力。
2、 清晰、缜密的业务、数据分析能力。
3、熟练使用程序流程技术来控制计算机完成自己的想法。
4、形成良好的编码习惯,获得一定的编码经验。提升业务分析和解决问题的能力,让基础知识形成体系结构,为后续Java高级技术的学习做有力的支撑。
系统准备、首页设计
系统准备内容分析:
①每个用户的账户信息都是一个对象,需要提供账户类。
②需要准备一个容器,用于存储系统全部账户对象信息。
③首页只需要包含:登录和注册2个功能。
实现步骤:
①定义账户类,用于后期创建账户对象封装用户的账户信息。
②账户类中的信息至少需要包含(卡号、姓名、密码、余额、取现额度)
③需要准备一个ArrayList的集合,用于存储系统用户的账户对象。
④需要展示欢迎页包含2个功能:开户功能、登录账户。
总结:
1、用户的账户信息,系统如何表示的?
定义账户类Account,定义系统关心的属性信息。
2、系统采用什么来存储全部用户的账户对象信息?
ArrayList<Account> accounts = new ArrayList<>();
用户开户功能实现
分析
①开户功能其实就是就是往系统的集合容器中存入一个新的账户对象的信息。
开户功能实现步骤
①开户应该定义成一个方法,并传入账户集合:
●public static void register(ArrayList<Account> accounts
②创建一个Account账户类的对象用于封装账户信息(姓名、密码、卡号)
③键盘录入姓名、密码、确认密码(需保证两次密码一致)
④生成账户卡号,卡号必须由系统自动生成8位数字(必须保证卡号的唯一)
⑤把Account账户对象存入到集合accounts中去。
开户功能的实现需要哪几步操作,需要注意什么问题?
开户功能应该独立定义成方法,并传入当前集合对象给该方法。
创建一个Account账户对象,封装账户信息。
录入开户信息(姓名、密码)
卡号要自动生成且唯一
把Account对象,存入到集合中去。
用户登录功能实现
分析
①登录功能应该定义成一个方法,并传入账户集合:
●public static void login(ArrayList<Account> accounts) {…
②让用户输入卡号,根据卡号去账户集合中查询账户对象。
③如果没有找到账户对象,说明登录卡号不存在,提示继续输入卡号。
④如果找到了账户对象,说明卡号存在,继续输入密码。
⑤如果密码不正确,提示继续输入密码
⑥如果密码也正确,登陆成功!!
登录功能如何实现的?
根据卡号去账户集合中查询对应的账户对象。
如果找到了账户对象,说明卡号存在,继续输入密码。
如果密码也正确,则登录成功。
用户操作页设计、查询账户、退出账户功能
用户操作页设计、查询账户、退出账户功能分析
①用户登录成功后,需要进入用户操作页。
②查询就是直接展示当前登录成功的账户对象的信息。
③退出账户是需要回到首页的。
用户存款
存款分析
①存款就是拿到当前账户对象。
②然后让用户输入存款的金额。
③调用账户对象的setMoney方法将账户余额修改成存钱后的余额。
④存钱后需要查询一下账户信息,确认是否存钱成功了!
取款功能
取款分析
①取款需要先判断账户是否有钱。
②有钱则拿到自己账户对象。
③然后让用户输入取款金额
④判断取款金额是否超过了当次限额,以及余额是否足够
⑤满足要求则调用账户对象的setMoney方法完成金额的修改。
用户转账功能
分析
①转账功能需要判断系统中是否有2个账户对象及以上。
②同时还要判断自己账户是否有钱。
③接下来需要输入对方卡号,判断对方账户是否存在。
④对方账户存在还需要认证对方户主的姓氏。
⑤满足要求则可以把自己账户对象的金额修改到对方账户对象中去。
用户登录后:密码修改、销户功能实现
分析
①修改密码就是把当前对象的密码属性使用set方法进行更新。
②销户是从集合对象中删除当前对象,并回到首页。