集合实现用户登录注册案例
来源:互联网 发布:电脑版ftp 软件 编辑:程序博客网 时间:2024/06/15 09:50
用户登陆注册案例
使用面向对象思想的特点?
符合我们正常的思想行为习惯
1)拿到一个需求:当前这个需求有哪些类:UML语言:名词提取法
2)每一个类中又有哪些功能
3)类与类之间的关系
分析:当前需求中有哪些类?
1)用户类
用户类中又有哪些东西呢?
成员变量:
构造方法:
成员方法:setXxx()/GetXXx()
如果用户类比较多,为了防止代码的量大,就将用户类又分为具体的两个类:
用户描述类:用户名,用户密码等等....
用户操作类:
登陆
注册
2)测试类
就是测试用户类的
测试类和用户类(用户描述类和用户操作类)之间的关系:
在测试类:创建用户类的对象或者创建用户操作类对象,调用每个类中的功能
实际开发中:
1)按照模块划分
2)按功能划分
3)先按模块划分,在按照功能划分
当前需求:登陆和 注册:按照功能划分
实际开发中:如何进行包的命名:公司的域名反写:(字母小写)
用户描述类包:org.westos.user;
用户操作接口包:org.westos.dao;---------->接口:------>抽象方法
用户操作实现类的包:org.westos.dao.impl----->实现类
用户测试类包:org.westos.test;
代码:
1.用户类
package org.westos.user;/**
*
* 这是用户信息类,描述了用户的信息
* @author Apple
* @version V1.0
* */
public class User {
/**
* 成员变量
*
* */
private String username ;
private String password;
public User() {
super();
}
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. 接口:登录和注册
package org.westos.dao;import org.westos.user.User;
/**
* 这是用户操作类的接口:登录和注册
* @author Beibei
* @version V1.0
*
*/
public interface UserDao {
/**
* 这是用户登录操作
* @param username
* 用户名
* @param password
* 密码
* @return
* return表示的是登录是否成功
*/
public abstract boolean isLogin(String username,String password);
/**
* 这是用户注册操作
* @param User
* 需要注册的用户
*/
public abstract void regist(User user);
}
3。子实现类
package org.westos.dao.impl;import java.util.ArrayList;
import org.westos.dao.UserDao;
import org.westos.user.User;
/**
* 这是用户操作的接口实现类
* @author Beibei
* @version V1.0
*
*/
public class UserDaoImpl implements UserDao {
private static ArrayList<User> array=new ArrayList<User>();
//登录功能
public boolean isLogin(String username,String password){
//注册完毕用户才能登录,用户注册的信息将储存在集合中,需要遍历集合
//遍历集合前,先要创建ArrayList并且定义一个标记
//为了让多个功能共同使用一个集合调用对象,所以将集合对象定义到成员变量中
//为了 不让外界看到,用private修饰
//为了让两个对象共用一个集合,用static修饰
boolean flag=false;
//增强for遍历,获取每一个信息
for(User u:array){
//使用if判断功能,如果输入的用户名和密码与注册的内容一致则登录成功,否则给出提示
if(u.getUsername().equals(username)&&u.getPassword().equals(password)){
flag=true;
break;
}
}
return flag;
}
//注册功能
public void regist(User user){
array.add(user);
}
}
4.玩游戏
package org.westos.game;import java.util.Scanner;
public class GuessNumberGame {
//构造方法私有
public GuessNumberGame(){
}
//静态方法
public static void show(){
//定义一个随机数
int number=(int) (Math.random()*100+1);
//定义统计变量
int count=0;
//为了多次循环
while(true){
//键盘录入您要猜的数字
Scanner sc=new Scanner(System.in);
System.out.println("请输入您要才的数字");
int x=sc.nextInt();
count++;
if(x>number){
System.out.println("您猜的数字"+x+"大了");
}else if(x<number){
System.out.println("您猜的数字"+x+"小了");
}else{
System.out.println("恭喜您第"+count+"次猜对了");
break;
}
}
}
}
5.测试类
package org.westos.test;import java.util.Scanner;
import org.westos.dao.UserDao;
import org.westos.dao.impl.UserDaoImpl;
import org.westos.game.GuessNumberGame;
import org.westos.user.User;
/**
* 用户登录注册案例的测试
* @author Beibei
* @version V1.0
*
*/
public class UserTest {
public static void main(String[] args) {
//为了能够多次循环录入,写一个while死循环
while(true){
//给出选择界面,欢迎界面
System.out.println("-------------------------欢迎光临--------------------------");
System.out.println("1 登录");
System.out.println("2 注册");
System.out.println("3 退出");
//创建键盘录入对象
Scanner sc=new Scanner(System.in);
//为了让同一个对象调用不同的功能,将该对象定义在switch语句的外面
UserDao ud=new UserDaoImpl();
//接受并录入数据
System.out.println("请输入您的选择");
String choice=sc.nextLine();
switch(choice){
case"1":
System.out.println("-------欢迎来到登录界面-------");
System.out.println("请输入用户名");
String username=sc.nextLine();
System.out.println("请输入您的密码");
String password=sc.nextLine();
//调用登陆功能
boolean flag=ud.isLogin(username, password);
if(flag){
System.out.println("恭喜您登陆成功");
System.out.println("玩游戏吗?y/n");
while(true){
String result=sc.nextLine();
if(result.equalsIgnoreCase("y")){
//您可以开始玩游戏了
GuessNumberGame.show();
System.out.println("还继续玩么?y/n");
}else{
break;
}
}
System.out.println("谢谢使用,欢迎下次再来");
System.exit(0);
break;
}else{
System.out.println("用户名和密码错误");
}
case"2":
System.out.println("-------欢迎来到注册界面-------");
System.out.println("请输入用户名");
String newUsername=sc.nextLine();
System.out.println("请输入密码");
String newPassword=sc.nextLine();
//将信息封装到User中
User user=new User();
user.setUsername(newUsername);
user.setPassword(newPassword);
//调用ud对象的注册功能
ud.regist(user);
System.out.println("注册成功");
break;
case"3":
default:
System.out.println("谢谢使用,欢迎下次光临");
System.exit(0);
break;
}
}
}
}
阅读全文
0 0
- 集合实现用户登录注册案例
- 登录注册案例(集合实现)
- 用户注册登录案例
- 用户登录注册案例
- 集合框架_用户登录注册案例分析图解
- 用户登录注册案例分析
- 用户注册和登录案例
- 用户登录注册案例分析
- 黑马程序员_集合实现控制台登录注册案例
- 用户注册登录案例分析以及简单实现
- 运用集合实现用户的注册和登录
- 集合框架_用户登录注册案例详细分析和分包的实现、用户基本描述类和用户操作接口的实现、用户操作类的具体实现、用户测试类的实现、加入猜数字小游戏
- 黑马程序员_用户登录注册案例
- GUI_用户登录注册加入四则运算案例
- PHP案例实现用户登录
- 网站用户登录注册实现
- java案例-基于集合的登录注册案例
- 【Java学习笔记】15.登录注册案例的实现(集合篇)
- Android init 进程
- ACM暑假集训日记 17.8.16 树状数组
- 作业
- Eclipse Java 安装教程
- 前端ajax获取从后台传回的数据
- 集合实现用户登录注册案例
- bean生命周期
- 单片机定时器使用
- Android使用腾讯X5内核WebView
- 滑动窗口的最大值
- 分页技术
- 树状数组求逆序数
- 文章标题
- python机器学习实战(四)