Java实现登录和注册案例
作者:yangruxi 发布时间:2022-02-27 04:57:46
标签: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;
}
}
}
}
运行结果:
注册和登录的运行结果:
猜数字游戏结束后退出系统:
来源:https://blog.csdn.net/yangruxi/article/details/71190001
![](https://www.aspxhome.com/images/zang.png)
![](https://www.aspxhome.com/images/jiucuo.png)
猜你喜欢
- 前言我在上一篇文章聊了Redisson的分布式锁,这次继续来聊聊Redisson的公平锁。下面是官方原话:它保证了当多个Redisson客户
- 如下所示:package com.lstc.test;public class TestDemo3 {String str = new St
- 前一段时间,在做摄像头拍照上传,摄像头拍的照片为base64编码格式的字符串,需要上传至项目中,则需要使用到将base64编码字符串转换为图
- 首先是创建redis-cluster文件夹:因为redis最少需要6个节点(三主三从),为了更好的理解,我这里创建了两台虚拟机(192.16
- Spring Cloud 为开发人员提供了一系列的工具来快速构建分布式系统的通用模型 。例如:配置管理、服务发现、断路由、智能路由、微代理、
- 定义一个对象应该对其他对象保持最少的了解。问题由来类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案尽
- SpringMVC文件下载说明: 在 SpringMVC 中,通过返回 ResponseEntity的类型,可以实现文件下载的功能案例演示1
- 1、dose not point to a valid jvm installation出错问题按照以下方法设置一定可以不会出现这个错误。我
- 本文主要介绍了25行Java代码将普通图片转换为字符画图片和文本的实现,分享给大家,具体如下:原图生成字符画文本(像素转换字符显示后,打开字
- 使用类的全权名: System.Text.StringBuilder sb = new System.Text.StringBuilder(
- 本文中使用maven+eclipse搭建activiti-5.14的开发环境一、创建maven工程创建一个普通的java工程,pom文件的内
- 本文实例为大家分享了tryAcquire()、addWaiter()、acquireQueued()的用法 ,供大家参考,具体内容如下try
- java使用HttpClient调用接口HttpClient 提供的主要的功能(1)实现了所有 HTTP 的方法(GET,POST,PUT,
- 本文实例为大家分享了Java实现简单酒店管理系统的具体代码,供大家参考,具体内容如下为某个酒店编写程序:酒店管理系统,模拟订房、退房和打印所
- 最近有小伙伴问我,双枚举类该怎么写,还得包括根据key取值方法。于是就手写一个案例如下:/** * 关系类型枚举 */public enum
- 本文向您展示了在 Flutter 中实现完美的验证码输入框几种不同方法。重点是什么?真实世界的 完美的验证码输入框或 PIN 输入 UI 通
- JPA的加锁机制有两种,乐观锁和悲观锁。乐观锁:乐观锁的特点在于认为数据冲突或者更新丢失等情况是很少发生的.当发生的时候,抛出异常和回滚就足
- 一、java发展史1.java之父:詹姆斯·高家林2.关键时间点:1996年Java(1.0)发布,2004年Java(5.0)发扬光大,2
- 一、前言 本学期学习了JAVA语言,在学期的结束,写一个有操作界面,与数据库关联的管理系统,用来巩固自己本学习所学的知识。 用到的知识:JA
- 一、前言最近接到一个任务,需要爬取五级行政区划的所有数据(大概71万条数据在),需要爬取的网站:行政区划 - 行政区划代码查询 发