需求:实现用户登录注册功能(用集合框架来实现)
分析:
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("注册失败");
}
}
}
输出结果:
注册成功
登录成功
可以换下参数测试下。