Java实现简单登录,注册功能(集合版)

最近都在忙着考软考,一直没有时间写东西,好不容易考完了,就随便写了个练练手。

使用集合来实现的一个用户登录,注册功能,没有实现JFrame窗口,只是简单的实现了一下功能。

仅供参考!

代码如下:

package cn.itcast.Dao;

import cn.itcast.pojo.User;

/**
 * 	这是针对用户进行操作的接口
 * @author 咚咚锵
 * @version 1.0
 *
 */
public interface UserDao {
	/**
	 * 	这是用户登录功能
	 * @param username	用户名
	 * @param password	密码
	 * @return	返回登陆是否成功
	 */
	public abstract boolean isLogin(String username,String password);
	
	/**
	 * 	用户注册功能(把用户信息添加的集合中)
	 * @param user
	 * 
	 * 之所以没有返回值,使用为集合添加的返回值永远都是true
	 */
	public abstract void regist(User user);
}




package cn.itcast.pojo;

/**
 * 	这是用户基本描述类
 * @author 咚咚锵
 * @version 1.0
 *
 */
public class User {
	
	private String Username;
	
	private String Password;
	
	public User() {
	}

	public String getUsername() {
		return Username;
	}

	public void setUsername(String username) {
		Username = username;
	}

	public String getPassword() {
		return Password;
	}

	public void setPassword(String password) {
		Password = password;
	}
}



package cn.itcast.Dao.impl;

import java.util.ArrayList;

import cn.itcast.Dao.UserDao;
import cn.itcast.pojo.User;

/**
 * 	这是用户功能的具体实现类(集合版)
 * 
 * @author 咚咚锵
 * 
 * @version 1.0
 *
 */
public class UserDaoImpl implements UserDao {

	//为了使多个方法可以使用集合,所以定义为成员变量
	
	//为了不让被人看到,所以使用private修饰
	
	//为了使多个对象使用同一个集合,使用静态修饰
	private static ArrayList<User> array=new ArrayList<User>();
	@Override
	public boolean isLogin(String username, String password) {
		boolean flag=false;
		for(User u:array) {
			if(u.getUsername().equals(password)&&u.getPassword().equals(password)) {
				flag=true;
				break;
			}
		}
		return flag;
	}

	@Override
	public void regist(User user) {
		array.add(user);
	}

}


package cn.itcast.test;

import java.util.Scanner;


import cn.itcast.Dao.UserDao;
import cn.itcast.Dao.impl.UserDaoImpl;
import cn.itcast.pojo.User;

public class Usertest {
	public static void main(String[] args) {
		while(true) {
			Scanner sc=new Scanner(System.in);
			User user=new User();
			UserDao uc=new UserDaoImpl();
			System.out.println("---------------欢迎光临---------------");
			System.out.println("1登录");
			System.out.println("2注册");
			System.out.println("3退出");
			String choiceString=sc.next();
			switch (choiceString) {
			case "1":
				System.out.println("输入用户名:");
				String username=sc.next();
				System.out.println("输入密码:");
				String password=sc.next();
				boolean flag=uc.isLogin(username, password);
				if(flag) {
					System.out.println("登陆成功");
					System.exit(0);
				}else {
					System.out.println("用户名或密码错误,登陆失败");
				}
				break;
			case "2":
				System.out.println("输入用户名:");
				String newusername=sc.next();
				System.out.println("输入密码:");
				String newpassword=sc.next();
				user.setUsername(newusername);
				user.setPassword(newpassword);
				uc.regist(user);
				System.out.println("注册成功");
				break;
				
			case "3":	
			default:
				System.out.println("---------------欢迎下次光临---------------");
				System.exit(0);
				break;
			}
			
			
		}
	}
}

个人感觉这个地方值得注意一下:

//为了使多个方法可以使用集合,所以定义为成员变量
	
	//为了不让被人看到,所以使用private修饰
	
	//为了使多个对象使用同一个集合,使用静态修饰
	private static ArrayList<User> array=new ArrayList<User>();

为了保证每个对象使用到的都是同一个集合,也就是说,在一次运行过程中,只会生成这一个集合,这是static的一个特点,以前没怎么注意过。有兴趣的可以去看一下,单例设计模式,也是利用了static的特点,还加上了其他的一些东西。 

发布了88 篇原创文章 · 获赞 47 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/dai_ma_dong/article/details/103037930