本文实例为大家分享了Java实现登录和注册的具体代码,供大家参考,具体内容如下
登录和注册案例的分析:
我们在完成一个需求时,需要面向对象,我们必须找到能完成某个功能的类,接着调用里面的方法来完成它。而这些类我们要进行分包,在不同包下实现,Java中的分包:
com.edu.domain — 标准的Java描述类
com.edu.dao — 存放的是接口
com.edu.daoimpl — 存放的是接口的实现类
com.edu.util — 对对象进行操作的工具类
com.edu.test — 测试类
登录和注册案例用到的类:
用户类:
成员变量:用户名,密码
成员方法:登录,注册功能
测试类:
main
登录和注册案例中用到的类的详细分解:
(1)用户类(User):用户名,密码,邮箱,电话号码等等各种注册时会用到的东西。我们在实现这个登录和注册案例的时候只需要用户名和密码就够了。这是一个标准Java描述类。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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)来定义注册和登录功能。接口就是对类的功能的一种扩展,它的本质是用来定义规则的。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
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的实现类。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
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)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
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)。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
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