最近都在忙着考软考,一直没有时间写东西,好不容易考完了,就随便写了个练练手。
使用集合来实现的一个用户登录,注册功能,没有实现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的特点,还加上了其他的一些东西。