创建一个用户实体类:
public class User {
private String username;
private String password;
public User() {
super();
}
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;
}
}
用户操作接口:
package org.westos.dao;
import org.wesots.entity.User;
public interface UserDao {
public abstract boolean isLogin(String username, String password);
public abstract void regist(User user);
}
用户操作的接口实现类:
package org.westos.dao.impl;
import java.util.ArrayList;
import org.wesots.entity.User;
import org.westos.dao.UserDao;
public class UserDaoImpl implements UserDao {
private static ArrayList<User> array = new ArrayList<User>();
@Override
public boolean isLogin(String username, String password) {
boolean flag = false;
for (User u : array) {
if (u.getUsername().equals(username)
&& u.getPassword().equals(password)) {
flag = true;
break;
}
}
return flag;
}
public void regist(User user) {
array.add(user);
}
}
猜数字游戏类:
package org.westos.game;
import java.util.Scanner;
public class GuessNumberGame {
private GuessNumberGame() {
}
public static void start() {
int number = (int) (Math.random() * 100 + 1);
int count = 0;
while (true) {
Scanner sc = new Scanner(System.in);
System.out.println("请你输入一个数据:");
int guessNumber = sc.nextInt();
count++;
if (guessNumber > number) {
System.out.println("你要猜的数据" + guessNumber + "大了");
} else if (guessNumber < number) {
System.out.println("你要猜的数据" + guessNumber + "小了");
} else {
System.out.println("恭喜您" + count + "次猜中了");
break;
}
}
}
}
测试类:
package org.westos.test;
import java.util.Scanner;
import org.wesots.entity.User;
import org.westos.dao.UserDao;
import org.westos.dao.impl.UserDaoImpl;
import org.westos.game.GuessNumberGame;
/**
* 用户的测试类
*
* 注意事项: 1)登陆功能和注册功能使用的是同一个集合,将集合的对象的数据共享,应该用static 2):登陆成功应该退出界面,
* 现在使用switch语句,遇见break,只是结束switch语句并不能结束循环语句----->
*
* @author Apple
*/
public class UserTest {
public static void main(String[] args) {
// 为了能够回来,加入while循环
while (true) {
// 给出选择的界面
System.out
.println("-------------------欢迎光临------------------------");
System.out.println("请选择:");
System.out.println("1 登陆");
System.out.println("2 注册");
System.out.println("3 退出");
// 创建键盘录入对象
Scanner sc = new Scanner(System.in);
// 根据不同的选择给出界面,简单分析下
// 为了方便数据的录入,就是用String类型接收
String choiceString = sc.nextLine();
// 由于用户都需要调用登陆和注册功能,通过接口多态,所以将该用户操作的登陆对象定义到switch语句外面
UserDao ud = new UserDaoImpl();
// 简单分析:就可以使用switch语句
switch (choiceString) {
case "1":
// 登陆界面
System.out.println("------------登陆界面--------------");
System.out.println("请输入用户名:");
String username = sc.nextLine();
System.out.println("请您输入密码:");
String password = sc.nextLine();
// 需要调用登陆功能
// UserDao ud = new UserDaoImpl() ;
boolean flag = ud.isLogin(username, password);
// 判断
if (flag) {
System.out.println("登陆成功,开始玩游戏吗?");
System.out.println("玩游戏吗?y/n");
while (true) {
String resultString = sc.nextLine();
if (resultString.equalsIgnoreCase("y")) {
// 开始玩游戏
GuessNumberGame.start();
System.out.println("你还玩吗?y/n");
} else {
break;
}
}
System.out.println("谢谢使用,下次再来...");
// break ;//遇见break,只是结束switch语句并不能结束循环语句
System.exit(0);
} else {
System.out.println("用户名或者密码错误,请重新输入....");
}
break;
case "2":
// 注册界面
System.out.println("------------注册界面--------------");
System.out.println("请您输入用户名:");
String newUserName = sc.nextLine();
System.out.println("请您输入密码:");
String newPassword = sc.nextLine();
// 将用户名和密码封装到用户对象中
User u = new User();
u.setUsername(newUserName);
u.setPassword(newPassword);
// 调用注册的功能:
// 接口多态:
// UserDao ud = new UserDaoImpl() ;
ud.regist(u);
System.out.println("注册成功..");
break;
case "3":
default:
System.out.println("谢谢使用,下次再来!");
System.exit(0);
break;
}
}
}
}