Java实现登录和注册案例

 更新时间:2022年04月25日 10:13:56   作者:yangruxi  
这篇文章主要为大家详细介绍了Java实现登录和注册案例,把用户信息存进集合,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了Java实现登录和注册的具体代码,供大家参考,具体内容如下

登录和注册案例的分析:

我们在完成一个需求时,需要面向对象,我们必须找到能完成某个功能的类,接着调用里面的方法来完成它。而这些类我们要进行分包,在不同包下实现,Java中的分包:
com.edu.domain — 标准的Java描述类
com.edu.dao — 存放的是接口
com.edu.daoimpl — 存放的是接口的实现类
com.edu.util — 对对象进行操作的工具类
com.edu.test — 测试类

登录和注册案例用到的类:

用户类:

成员变量:用户名,密码
成员方法:登录,注册功能

测试类:

main

登录和注册案例中用到的类的详细分解:

(1)用户类(User):用户名,密码,邮箱,电话号码等等各种注册时会用到的东西。我们在实现这个登录和注册案例的时候只需要用户名和密码就够了。这是一个标准Java描述类。

package com.edu.domain;

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


}

(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),也就是之前定义的接口UserDao的实现类。

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) {
        // TODO Auto-generated method stub
        users.add(user);

    }

    //登录功能:校验用户名和密码是否正确,正确返回true,否则返回false
    @Override
    public boolean isLogin(String userName, String passWord) {
        // TODO Auto-generated method stub
        boolean flag = false;
        for (User user : users) {
            if(userName.equals(user.getUserName())&&passWord.equals(user.getPassWord())){
                flag = true;
                break;
            }
        }
        return flag;
    }

}

(4)在用户完成注册登录后,我们可以实现某种功能了,例如:猜数字小游戏。再建一个游戏类(GuessNumber)。

package com.edu.game;

import java.util.Scanner;

public class GuessNumber {
    public static void playGame() {
        //获取一个一到一百之间的随机数
        int random = (int) (Math.random()*100+1);

        //创建键盘录入对象,获取键盘录入数据
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入所猜测的数字:");
        int number = sc.nextInt();

        //创建while死循环
        while (true) {
            if (number>random) {
                System.out.println("大了,请重新输入:");
                number = sc.nextInt();
            }
            if (number<random) {
                System.out.println("小了,请重新输入:");
                number=sc.nextInt();
            }
            if (number==random) {
                System.out.println("恭喜你答对了!");
                break;
            }
        }

    }

}

(5)测试类(Test)。

package com.edu.test;

import java.util.Scanner;

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

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 = 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 inputPassWord = sc.nextLine();
            //通过用户操作类对象调用登录方法
            boolean flag = udi.isLogin(inputUserName,inputPassWord);
            if (flag) {
                System.out.println("登录成功,玩游戏吧!");
                GuessNumber.playGame();
            }else{
                System.out.println("登录失败!");
            }   
            break;
        case "3":
        default:
            //对于3或者其他数字的选择,都直接退出系统
            System.exit(0);
            break;
        }

    }
    }
}

运行结果:

注册和登录的运行结果:

猜数字游戏结束后退出系统:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Spring中@Value注解获取不到配置值问题及解决

    Spring中@Value注解获取不到配置值问题及解决

    这篇文章主要介绍了Spring中@Value注解获取不到配置值问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot使用@PathVariable进行数据校验的流程步骤

    SpringBoot使用@PathVariable进行数据校验的流程步骤

    在SpringBoot项目中,我们经常需要从 URL 中获取参数并进行相关的数据校验,而@PathVariable注解就是一种非常方便的方式,可以让我们在方法参数中直接获取URL中的参数,并进行数据校验,本文将介绍如何使用@PathVariable注解进行数据校验
    2023-06-06
  • Java的静态类型检查示例代码详解

    Java的静态类型检查示例代码详解

    本文将使用几个代码示例,深入讲解Java中的类型检查机制。一旦完全理解了本文的例子,就完全掌握了Java中的静态类型检查,感兴趣的朋友一起看看吧
    2017-11-11
  • SpringBoot集成内存数据库Derby的实践

    SpringBoot集成内存数据库Derby的实践

    像H2、hsqldb、derby、sqlite这样的内存数据库,小巧可爱,做小型服务端演示程序,非常好用。最大特点就是不需要你另外安装一个数据库。本文主要介绍了SpringBoot集成内存数据库Derby,感兴趣的可以了解一下
    2021-09-09
  • java中lambda表达式简单用例

    java中lambda表达式简单用例

    让我们从最简单的例子开始,来学习如何对一个string列表进行排序。我们首先使用Java 8之前的方法来实现
    2016-09-09
  • java打包成jar并执行jar包中指定的main方法

    java打包成jar并执行jar包中指定的main方法

    这篇文章主要介绍了如何将java打包成可执行的jar,并执行jar包中指定的main方法的相关资料,文中给出了详细的示例代码,对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • 一文搞懂SpringBoot如何利用@Async实现异步调用

    一文搞懂SpringBoot如何利用@Async实现异步调用

    异步调用几乎是处理高并发,解决性能问题常用的手段,如何开启异步调用?SpringBoot中提供了非常简单的方式,就是一个注解@Async。今天我们重新认识一下@Async,以及注意事项
    2022-09-09
  • 解决java.util.NoSuchElementException异常正确方法

    解决java.util.NoSuchElementException异常正确方法

    java.util.NoSuchElementException是Java中的一种异常,表示在迭代器或枚举中找不到元素,这篇文章主要给大家介绍了关于解决java.util.NoSuchElementException异常的相关资料,需要的朋友可以参考下
    2023-11-11
  • SpringBoot 整合ChatGPT API项目实战教程

    SpringBoot 整合ChatGPT API项目实战教程

    这篇文章主要介绍了SpringBoot整合ChatGPT API项目实战教程,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • springboot实现学生管理系统

    springboot实现学生管理系统

    这篇文章主要为大家详细介绍了springboot实现学生管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-07-07

最新评论