需求:实现用户登录注册功能(用集合框架来实现)
分析:
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;}@Overridepublic 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>();@Overridepublic boolean isLognUser(UserBean user) {//定义一个boolean返回值变量,默认为falseboolean flag = false;//遍历集合,比较数据,判断是否可以登录for (UserBean userBean : arrList) {if (userBean != null) {if(userBean.getUsername().equals(user.getUsername())&&userBean.getPassword().equals(user.getPassword())){flag = true;}}}return flag;}@Overridepublic 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("注册失败");}}}
输出结果:
注册成功
登录成功
可以换下参数测试下。