登录注册案例

在集合的基础上,我们可以做一个登录注册案例

登陆注册案例分析:
利用面向对象的思想,我们必须先找到能完成某个功能的类,接着调用里面的方法完成它

登陆注册案例中的类:
用户类
成员变量:用户名,密码
成员方法:登陆,注册功能
测试类 :就是我们的main方法

登陆注册案例中的类的详细分解:
用户类(User):用户名,密码,邮箱,电话,身份证号。。。。— 标准的java描述类
我们应该把对用户的所有的操作抽取出来形成一个类:
用户操作类:注册,登陆
定义一个接口:就是定义的登陆和注册的功能,接口本质其实是用来定义规则的。

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

下面是 代码实现部分,添加了一个 注册成功后可以 玩一个猜数字小游戏的方法
先写一个标准的用户描述类:

public class User {
 private String useName;                             
 private String passWord;
 public User() {
  super();
  // TODO Auto-generated constructor stub
	 }
 public User(String useName, String passWord) {
  super();
  this.useName = useName;
  this.passWord = passWord;
 	}
 public String getUseName() {
  return useName;
 	}
 public void setUseName(String useName) {
  this.useName = useName;
 	}
 public String getPassWord() {
  return passWord;
 	}
 public void setPassWord(String passWord) {
  this.passWord = passWord;
 	}
 }

用户的操作类,为了之后代码修改方便,利用接口的方法来实现。

import com.edu.domain.User;
public interface UserDao {
 //定义注册的功能
 public abstract void regist(User user);
 //定义一个登陆的功能
 public abstract boolean isLogin(String userName,String passWord );
}

接口的实现类:

import java.util.ArrayList;
import com.edu.dao.UserDao;
import com.edu.domain.User;
//创建一个用户操作类
public   class UserDaoImpl implements UserDao {
 ArrayList<User> users = new ArrayList<User>();
    //目前在集合的基础上使用用户注册和登陆的功能,  将用户的信息存储在集合中,登录时拿信息与集合中的信息匹配
 @Override
 public void regist(User user) {
  // TODO Auto-generated method stub
  users.add(user);
 }
 @Override
 public boolean isLogin(String userName, String passWord) {
  boolean flag = false;
  for(User user:users){
   if(userName.equals(user.getUseName())&&passWord.equals(user.getPassWord())){
    flag = true;
   }
  }
  return  flag;
 }
}

测试类:

import java.util.Scanner;
import com.edu.dao.impl.UserDaoImpl;
import com.edu.domain.User;
public class Test {
 public static void main(String[] args) {
   int real =  (int) (Math.random()*100+1);
  UserDaoImpl udi = new  UserDaoImpl();
  //先创建一个用户操作类对象,来完成一定的操作
  //UserDaoImpl udi = new  UserDaoImpl();
  while(true){
  System.out.println("欢迎来到登录注册页面");
  System.out.println("1:注册");
  System.out.println("2:登录");
  System.out.println("3:退出系统");
  Scanner sc = new Scanner(System.in);
    String line = sc.nextLine();
//注意这里接受数字选择的时候,要用字符串类型来接,因为如果用int类型来接受的话,后面用的是String类型接受,这样会导致程序运行时发生错误,而且编译的时候不会报错,所以一定要切记
  switch(line){
  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 intputuserName = sc.nextLine();
         System.out.println("请输入你的用户密码");
         String intputpassWord = sc.nextLine();
         boolean flag = udi.isLogin(intputuserName, intputpassWord);
         if(flag){
          System.out.println("等录成功");
          System.out.println("你现在可以玩一个猜数字小游戏了");
          while(true){
          System.out.println("请输入你猜的一个在1到100之间的数字");
             int guess = sc.nextInt();
             if(real>guess){
              System.out.println("你猜的数字偏小");
             }else if(guess>real){
              System.out.println("你猜的数字偏大");
             }else if(guess==real){
              System.out.println("恭喜你答对了");break;
             }
         }
         }else{
          System.out.println("登录失败,请确保你的用户信息正确");
         }
         break;
  case "3":  System.out.println("系统即将退出");System.exit(0);
   default:  System.out.println("您输入有误,系统将自动退出,请重新启动");System.exit(0);
  }
 }
}
}
发布了62 篇原创文章 · 获赞 55 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Veer_c/article/details/103817257