java学习笔记(二十四)注册登录系统

学习了这么多天的java基础,对java的基础语言部分已经了解的差不多了,这个时候我们就要学会融会贯通,将以前学习的知识充分运用起来,所以这个时候写一个小的注册登录系统最合适不过了
登陆注册案例分析:
我们现在写代码需要面向对象,我们必须先找到能完成某个功能的类,接着调用里面的方法完成它
登陆注册案例中的类:

  用户类
    成员变量:用户名,密码
    成员方法:登陆,注册功能
    测试类:main

登陆注册案例中的类的详细分解:

用户类(User):用户名,密码,邮箱,电话,身份证号。。。。--- 标准的java描述类
我们应该把对用户的所有的操作抽取出来形成一个类:
用户操作类:注册,登陆
定义一个接口:就是定义的登陆和注册的功能,我们之前说过接口是是对类的功能的一种扩展,
其实当时说的还不够完善,接口本质其实是用来定义规则的
测试类:main

java中的分包:

com.edu.domain --- 标准的java描述类
com.edu.dao -- 存放的是接口
com.edu.dao.impl -- 存放的是接口实现类
com.edu.util -- 对对象进行操作的工具类
com.edu.test -- 测试类

代码如下:
com.edu.domain包下的User类:

package com.exp.domain;

public class User {
    private String userName;
    private String passWord;
    public User(String userName, String passWord) {
        super();
        this.userName = userName;
        this.passWord = passWord;
    }
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    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;
    }


}

com.edu.dao包下的UserDao类:

package com.exp.dao;

import com.exp.domain.User;

public interface UserDao {
    //定义注册方法
    public abstract void regit(User user);
    //定义登录方法
    public abstract boolean log(String useName,String passWord);


}

com.edu.dao.impl包下的UserDaoImpl类:

package com.exp.dao.impl;

import java.util.ArrayList;

import com.exp.dao.UserDao;
import com.exp.domain.User;

public class UserDaoImpl implements UserDao{
    ArrayList<User> users=new ArrayList<User>();
    @Override
    //重写注册方法
    public void regit(User user) {
        users.add(user);
        System.out.println("注册成功");


    }

    @Override
    //重写登录方法
    public boolean log(String useName, String passWord) {
        boolean flag=false;
        //遍历集合并判断
        for (User user : users) {
            if(useName.equals(user.getUserName())&&passWord.equals(user.getPassWord())){
                flag=true;
                break;
            }
        }
        return flag;
    }

}

com.edu.test – 测试类

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;
            }
        }
    }

}

运行结果:
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值