需求:實現用戶登錄注冊功能(用集合框架來實現)
分析:
A:需求的類和接口
1.用戶類 UserBean
2.用戶操作方法接口和實現類 UserDao UserDaoImpl
3.測試類 UserTest
B:各個類中的東西
1.用戶類UserBean:
a.成員 變量
(1)用戶名 String username
(2)密碼 String password
b.構造方法:
(1)無參構造方法 UserBean()
(2)有參構造方法 UserBean(String username,String password)
c.成員方法
(1)get()方法
(2)set()方法
d.重寫toString()方法
2.用戶方法操作接口UserDao:
a.方法:
(1)注冊方法 registerUser()
(2)登錄方法 isLognUser()
3.接口實現類UserDaoImpl:
a.實現方法
(1)注冊方法 registerUser()
(2)登錄方法 isLoginUser()
4.測試類Test:
方法:
main()方法
C:類與類之間的關系
1.UserDao的實現類是UserDaoImpl.
2.UserDaoImpl是用來操作UserBean的。
3.UserTest是用來調用其它幾個類的
分包:
A:功能划分
B:模塊划分
C:先按模塊划分,再按功能划分
目前只能按功能划分:
用戶類的類包: com.ma.bean
用戶操作類的接口:com.ma.dao
用戶操作接口實現類:com.ma.dao.impl
用戶測試類:com.ma.test
代碼:
用戶基本類:
package com.ma.bean; /** * 用戶基本類 * * @author ma * @version V1.0 * */ public class UserBean { //成員變量區 /** * 用戶名 */ private String username; /** * 用戶密碼 */ private String password; //構造方法 public UserBean() { super(); } public UserBean(String username, String password) { super(); this.username = username; this.password = password; } //成員方法區 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; } @Override public String toString() { return "UserBean [username=" + username + ", password=" + password + "]"; } }
用戶類UserBean的功能接口:
package com.ma.dao; import com.ma.bean.UserBean; /** * 用戶類UserBean的功能接口 * * @author ma * @version V1.0 * */ public interface UserDao { /** * 用戶登錄方法 * * @param user 用戶對象 * @return boolean 登錄成功返回true,登錄失敗返回false */ public abstract boolean isLognUser(UserBean user); /** * 用戶注冊方法 * * @param user 用戶對象 * @return boolean 注冊成功返回true,注冊失敗返回false */ public abstract boolean registerUser(UserBean user); }
用戶功能 接口UserDao的實現類:
package com.ma.dao.impl; import java.util.ArrayList; import com.ma.bean.UserBean; import com.ma.dao.UserDao; /** * 用戶功能 接口UserDao的實現類 * * @author ma * @version V1.0 * */ public class UserDaoImpl implements UserDao { //得到一個集合 ArrayList<UserBean> arrList = new ArrayList<UserBean>(); @Override public boolean isLognUser(UserBean user) { //定義一個boolean返回值變量,默認為false boolean flag = false; //遍歷集合,比較數據,判斷是否可以登錄 for (UserBean userBean : arrList) { if (userBean != null) { if(userBean.getUsername().equals(user.getUsername())&&userBean.getPassword().equals(user.getPassword())){ flag = true; } } } return flag; } @Override public boolean registerUser(UserBean user) { boolean flag = true; arrList.add(user); return true; } }
用戶登錄注冊測試類:
package com.ma.test; import com.ma.bean.UserBean; import com.ma.dao.UserDao; import com.ma.dao.impl.UserDaoImpl; /** * 用戶登錄注冊測試類 * * @author ma * @version V1.0 */ public class UserTest { public static void main(String[] args) { //創建一個用戶操作類 UserDao ud = new UserDaoImpl(); //創建一個UserBean對象 UserBean user = new UserBean(); //得到數據 String name = "張三"; String password = "abc123"; //把數組放入UserBean對象中 user.setUsername(name); user.setPassword(password); //創建一個UserBean對象 UserBean user1 = new UserBean("張三","abc123"); //調用注冊方法 if(ud.registerUser(user)){ System.out.println("注冊成功"); //調用登錄方法 boolean result = ud.isLognUser(user1); if(result){ System.out.println("登錄成功"); }else{ System.out.println("用戶名和密碼不匹配。登錄失敗"); } }else{ System.out.println("注冊失敗"); } } }
輸出結果:
注冊成功
登錄成功
可以換下參數測試下。