項目案例: 大富翁遊戲系統
功能:
有注冊功能,登陸功能,抽獎功能,查詢功能,修改密碼功能,删除賬号功能,退出功能
思路:
需要建立一個使用者類,每次建立注冊使用者時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