注:本节教材内容,与上期推送的《核心试验:重构WoniuATM并完善其功能(一)》为一个章节。
回顾上节内容,请点击:核心实验:重构WoniuATM并完善其功能(一)
实验流程
5.实现UserData数据类:
package com.woniuxy.atm.two;
public class UserData {
private String username;// 用户名
private String password;// 密码
private String phone;// 手机号码
private double balance;// 账户余额
private boolean isAdmin;// 是否管理员(用于初始用户设定)
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public boolean isAdmin() {
return isAdmin;
}
public void setAdmin(boolean isAdmin) {
this.isAdmin = isAdmin;
}
// 默认构造方法,由于有两个构造方法,所以必须显式声明
public UserData() {}
// 构造方法,快速设置初始用户或完成注册。也可用setter和getter挨个属性设置,均可
public UserData(String username, String password, String phone, int balance,
boolean isAdmin) {
this.username = username;
this.password = password;
this.phone = phone;
this.balance = balance;
this.isAdmin = isAdmin;
}
}6.实现UserManager类:
到目前为止代码框架已经为大家搭建完毕,接下来,就需要读者来独立完成更多的代码实现了。
对于用户管理类的实现,我们着重先来梳理一下思路,并演示注册代码的实现,登录的验证就交给读者朋友自行实现了。
(1).首先,我们已经学习了数组和List对象,我们认为使用List对象来管理用户会更加方便。
(2).其次,List对象里面应该存放什么数据类型?字符串?显然不是,应该存在UserData数据类的多个实例,每个实例对应一个用户。所以我们应该使用List<UserData>类型来定义该列表对象。
(3).再者,该List对象会在注册,登录甚至转账,存款中都会用到,所以我们应该将其定义为类级成员变量,而不应该是某个方法的局部变量。
(4).最后,由于我们经验会实例化UserManager类,所以为了保证实例化过程中不清空已经注册的用户,我们应该将该类级成员变量定义为:static静态,这样可以不随实例化过程而消失。
(5).所以,最终,我们在UserManager的类级定义了一个静态成员变量,代码如下:
static List<UserData> uds = new ArrayList<UserData>();
有了这个基础前提后,我们先通过重写UserManager的构造方法来完成初始用户的设置:
// 利用构造方法来完成两个默认用户的初始化设置,方便代码的调试,不用每次都要先注册
public UserManager() {
UserData ud1 = new UserData();
ud1.setUsername("admin");
ud1.setPassword("adminpass");
ud1.setBalance(5000);
ud1.setPhone("13812345678");
ud1.setAdmin(true);
uds.add(ud1); // 将第一个默认用户添加到uds列表对象中
UserData ud2 =
new UserData("woniu","woniupass","18081089811",5000,false);
uds.add(ud2); // 利用UserData的重载构造方法快速完成初始用户创建
}接下来,我们来实现register方法,最后的UserManager的完整代码实现(除login()方法外)如下: