分分28官网|分分28开奖网

实验:重构WoniuATM并完善其功能(二)
作者:强官涛   类型:Java开发    类别:实验   日期:2018-07-24    阅读:2537 次   消耗积分:2 分

注:本节教材内容,与上期推送的《核心试验:重构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() {}

 

// 构造方法,快速设置初始用户或完成注册。也可用settergetter挨个属性设置,均可

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()方法外)如下:


package com.woniuxy.atm.two;

 

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

 

public class UserManager {


// uds定义为类级静态成员变量,可以确保不会在实例化时将注册的数据清空

// 使用List列表来处理用户信息,相当于uds对象中可以保存多个UserData实例

static List<UserData> uds = new ArrayList<UserData>();

// 定义静态变量loggedUserIndex,用于保存登录用户在uds中的下标,便于后续使用

public static int loggedUserIndex = -1;

 

// 利用构造方法来完成两个默认用户的初始化设置,方便代码的调试,不用每次都要先注册

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("woniuxy","123456","18081089811",5000,false);

uds.add(ud2); // 利用UserData的重载构造方法快速完成初始用户创建

}


// 实现登录功能

public void login() {

版权所有,转载本站文章请注明出处:蜗牛学院在线课堂, http://www.mountsinaibaptistchurch.org/note/165
提示:登录后添加有效评论可享受积分哦!