项目案例: 大富翁游戏系统
功能:
有注册功能,登陆功能,抽奖功能,查询功能,修改密码功能,删除账号功能,退出功能
思路:
需要建立一个用户类,每次新建注册用户时new一下即可。
需要建立一个管理类,具备增删改查的方法。
需要建立一个测试类,在主方法中循环显示主菜单页面。
各个类的具体说明:
User类:
定义私有的nama(账号)、私有的password(密码)、私有的nums(会员号)、
并向外面提供一系列公共的getter and setting方法,来调用本类的属性。
建立默认的构造方法和带参的构造方法,方遍直接赋值。
可能用到的知识点:
private:封装
把属性封装起来,拒绝外面的直接赋值和调用,并且向外面提供公共的方法来设置和调用 本类属性。
构造方法:
方法名和类名相同,没有声明返回类型的方法,(不可被继承)
分为无参的构造方法(默认的构造方法,一般要保留),
带参的构造方法,方遍直接赋值。(在实例化对象时直接赋值)。
在定义一个公共的打印方法,方便输出本类信息。
Operation类:(管理类)
在类中创建一个存储用户对象的数组,数组类型与元素类型相同 User[] user = null;
创建一个构造方法,传入一个数组的大小,user = new User[size];
如果没有传入数,或者传入数小于0,则给他一个默认大小10。
定义一个count=0,记录数组中元素的个数,并且可以作为下标遍历数组
注册的方法:
先判断元素个数,如果数组满了,就新建一个更大的数组,把数据拷贝过来即可
传入一个用户,遍历用户数组,查看已有用户的账号是否存在,如果存在,给出提示,重新输入
如果不存在,则存储起来,count++;
登陆的方法:
传入一个用户,或者转入账号密码;遍历数组,如果匹配到账号,查看密码相同,则返回boolean值 true
如果没有匹配到,则返回false
通过boolean类型的值来判断是否登录成功。
修改密码的方法
用第一个方法匹配账号密码,成功返回下标,失败返回-1
再用第二个方法,传入下标和新密码
把 新传入的密码 赋值给对应用户对象的密码属性
删除的方法
循环遍历 数组 ,先匹配到账号
如果密码也匹配到,把删除位置以后的元素 往前挪一位,users[count] == null;把最后的元素释放
count -1
抽奖方法:
可以在实验类中直接比较,也可以在本方法中比较,
测试类:
实例化对象的准备幸运数字 ,死循环,保持可以 一直在主菜单状态
用switch 进入不同的 功能
每个功能
有的设置死循环,重复判断 输入的账号密码,
有的创建 用户对象
部分代码

/**
* 注册的方法:
*/
public int register(String userName, String userPassword) {
//先判断元素个数,如果数组满了,就新建一个更大的数组,把数据拷贝过来即可
if (count == user.length) {
user = java.util.Arrays.copyOf(user, user.length + 10);
}
//传入一个用户,遍历用户数组,查看已有用户的账号是否存在,如果存在,给出提示,重新输入
for (int i = 0; i < count; i++) {
if (userName.equals(user[i].getName())) {
return -1;
}
}
//如果不存在,则存储起来,count++;
user[count] = new User(userName, userPassword, generateLuckyNumber());
count++;
return count - 1;
}
/**
* 登陆的方法:
*/
public User login(String userName, String userPassword) {
//传入一个用户,或者转入账号密码;遍历数组,如果匹配到账号,查看密码相同,则返回boolean值 true
int index = matchUserIndex(userName, userPassword);
if (index > -1) {
loginIndex = index;
return user[index];
}
return null;
}
/**
* 更改密码
*
* @param userName 用户名
* @param userOldPassword 旧密码
* @param userNewPassword 新密码
* @return
*/
public boolean changePassword(String userName, String userOldPassword, String userNewPassword) {
int index = matchUserIndex(userName, userOldPassword);
if (index > -1) {
user[index].setPassword(userNewPassword);
return true;
}
return false;
}
/**
* 删除用户
*
* @param userName
* @param userPassword
* @return
*/
public boolean deleteUser(String userName, String userPassword) {
int index = matchUserIndex(userName, userPassword);
if (index > -1) {
for (int i = index; i < count; i++) {
user[index] = user[index + 1];//把删除位置以后的元素 往前挪一位
}
user[count - 1] = null; //把最后的元素释放
count--;//数量减1
return true;
}
return false;
}
开源地址:https://github.com/zynalnacaa/java_demos