用户登录注册:
分析:
明确有几个类
用户类
用户基本描述类
用户操作类
测试类
明确每个类的功能
用户类
成员变量 用户名 密码
构造方法 无参构造 带参构造
成员方法 get set...
用户操作类
成员变量 ??
构造方法
成员方法 注册登录
测试类
成员变量 无
构造方法 无
成员方法 main方法
明确类与类的关系
操作类实现对象
最后测试
分析:
明确有几个类
用户类
用户基本描述类
用户操作类
测试类
明确每个类的功能
用户类
成员变量 用户名 密码
构造方法 无参构造 带参构造
成员方法 get set...
用户操作类
成员变量 ??
构造方法
成员方法 注册登录
测试类
成员变量 无
构造方法 无
成员方法 main方法
明确类与类的关系
在测试类中 键盘录入信息进行操作
先建立一个用户类
package domain;
/**
* 这是用户描述类
* @author Angus
*
*/
public class User {
//用户名
private String username;
//密码
private String password;
//邮箱
private String email;
//电话
private String phone;
public User(String username, String password, String email, String phone) {
super();
this.username = username;
this.password = password;
this.email = email;
this.phone = phone;
}
public User() {
}
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;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
操作接口,需要实现登录和注册
package dao;
import domain.User;
/**
* 用户操作接口
* @author Angus
*
*/
public interface UserDao {
/**
* 这是用户登录功能
* @param username
* 用户名
* @param password
* 密码
* @return 返回是否成功
*/
public abstract boolean isLogin(String username, String password);
/**
* 注册功能
* @param user
*/
public abstract void regist(User user);
}
操作类实现对象
package dao.imp;
import dao.UserDao;
import domain.User;
/**
* 用户操作实现类
* @author Angus
*
* 如何实现
* 如果是注册一个用户,用User保存即可
* 但是,注册肯定不止一个用户,所以需要存储
* 到目前为止可以使用的为对象数组
* 单数数组需要长度,最终会选择集合,目前还没有学习集合
* 先用对象数组实现
* 注册5个人固定
*/
public class UserDaoImp implements UserDao{
//定义成员变量数组 不用每次都new
private static User[] users = new User[5];
private static int index = 0;
@Override
public boolean isLogin(String username, String password) {
/**
* 便利数组获取到每一个对象,然后拿到对象的用户名和密码和传递到的比较
*/
boolean flag = false;
for(int x = 0;x<users.length; x++){
User user = users[x];
if(user != null){
if(user.getUsername().equals(username)&&user.getPassword().equals(password)){
flag = true;
}
}
}
return flag;
}
@Override
public void regist(User user) {
users[index++] = user;
}
}
最后测试
package Test;
import java.util.Scanner;
import dao.imp.UserDaoImp;
import domain.User;
/**
* 测试
*
* @author Angus
*
*/
public class UserTest {
public static void main(String[] args) {
while (true) { //while 循环操作 注册后也可以测试登录
System.out.println("欢迎来到wsj站");
System.out.println("1:登录");
System.out.println("2:注册");
System.out.println("3:退出");
System.out.println("请选择:");
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
switch (line) {
case "1":
System.out.println("欢迎登录");
System.out.println("请输入用户名");
String name = sc.nextLine();
System.out.println("请输入密码");
String password = sc.nextLine();
UserDaoImp udi = new UserDaoImp();
boolean flag = udi.isLogin(name, password);
if (flag) {
System.out.println("登录成功");
} else {
System.out.println("登录失败");
}
break;
case "2":
System.out.println("欢迎注册");
System.out.println("请输入用户名");
String newname = sc.nextLine();
System.out.println("请输入密码");
String newpassword = sc.nextLine();
System.out.println("请输入邮箱");
String newemail = sc.nextLine();
System.out.println("请输入电话");
String newphone = sc.nextLine();
User user = new User();
user.setUsername(newname);
user.setPassword(newpassword);
user.setEmail(newemail);
user.setPhone(newphone);
UserDaoImp newudi = new UserDaoImp();
newudi.regist(user);
System.out.println("注册成功");
break;
case "3":
System.out.println("退出");
System.exit(0);
break;
default:
System.out.println("退出");
System.exit(0);
break;
}
}
}
}
结果: