【Java学习笔记】15.登录注册案例的实现(集合篇)

来源:互联网 发布:宁波新房成交数据 编辑:程序博客网 时间:2024/06/08 18:57

1.案例分析
1.登陆注册案例分析:
我们现在写代码需要面向对象,我们必须先找到能完成某个功能的类,接着调用里面的方法完成它
2.登陆注册案例中的类:
用户类
成员变量:用户名,密码
成员方法:登陆,注册功能

测试类
main
3.登陆注册案例中的类的详细分解:
用户类(User):用户名,密码,邮箱,电话,身份证号。。。。— 标准的java描述类
4.测试类:main
5.java中的分包:
com.edu.domain — 标准的java描述类
com.edu.dao – 存放的是接口
com.edu.dao.impl – 存放的是接口实现类
com.edu.util – 对对象进行操作的工具类
com.edu.test – 测试类

2.具体代码实现
1.User类实现

package com.edu.domain;public class User {    private String userName;    private String password;    public User() {        super();        // TODO Auto-generated constructor stub    }    public User(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;    }}

2.UserDao类实现

package com.edu.dao;import com.edu.domain.User;public interface UserDao {    //定义注册的功能    public abstract void regist(User user);    //登陆功能    public abstract boolean isLogin(String userName,String password);}

3.UserDaoImpl类实现

package com.edu.dao.impl;import java.util.ArrayList;import com.edu.dao.UserDao;import com.edu.domain.User;//用户操作类public class UserDaoImpl implements UserDao{    //在这里做一个基于集合的登录和注册,相当与接收到用户信息存储到集合,登陆的时候从集合中查找用户信息    static ArrayList<User> users = new ArrayList<User>();    @Override    public void regist(User user) {        //接收到的用户对象存储到集合中        users.add(user);    }    @Override    public boolean isLogin(String userName, String password) {        //登陆:遍历集合,看集合中是否存在前面传递过来的用户名和密码信息,如果存在返回true,如果不存在返回false         boolean flag = false;        for(User user:users){            if (userName.equals(user.getUserName())&&password.equals(user.getPassword())) {                flag = true;                break;            }        }        return flag;    }}

4.测试
package com.edu.test;

import java.util.Scanner;

import com.edu.dao.impl.UserDaoImpl;
import com.edu.domain.User;

public class Test {
public static void main(String[] args) {
while (true) {
//提示用户目前是需要登录还是需要注册还是需要退出呢
System.out.println(“欢迎来到登录注册页面”);
System.out.println(“1:注册”);
System.out.println(“2:登陆”);
System.out.println(“3:退出系统”);

        //创建一个用户操作类对象        UserDaoImpl udi = new UserDaoImpl();        //创建键盘录入对象获取键盘录入信息        Scanner sc = new Scanner(System.in);        String choice = sc.nextLine();        //使用switch进行判断        switch (choice) {        case "1":            System.out.println("欢迎来到注册页面");            System.out.println("请输入你的用户名");            String userName = sc.nextLine();            System.out.println("请输入你的密码");            String password = sc.nextLine();            //将用户名和密码封装成一个user对象            User user = new User(userName, password);            //电泳用户操作类对象的注册方法            udi.regist(user);            System.out.println("注册成功");            break;        case "2":            System.out.println("欢迎来到登陆页面");            System.out.println("请输入你的用户名");            String inputUserName = sc.nextLine();            System.out.println("请输入你的密码");            String inputpPassword = sc.nextLine();            //调用用户操作类对象的登陆方法            boolean flag = udi.isLogin(inputUserName, inputpPassword);            if (flag) {                System.out.println("登陆成功");            }else {                System.out.println("登录失败");            }            break;        case "3":        default:            //输入3或者其他的选项,全部退出系统            System.exit(0);            break;        }    }}

}

5.测试结果
这里写图片描述
这里写图片描述

0 0