java基础学习项目练习之登录和注册 八

用户登录注册:


分析:
明确有几个类
用户类
用户基本描述类
用户操作类
测试类

明确每个类的功能

用户类
成员变量  用户名 密码
构造方法  无参构造 带参构造
成员方法  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;
			}

		}
	}
}
结果:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值