Java基礎シリーズ6の使用集合シミュレーションユーザログイン登録システム


インタフェースの定義
コードの例
package org.westos.dao;

import org.westos.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.westos.dao.UserDao;
import org.westos.entity.User;

public class UserDaoImpl implements UserDao {
	private static ArrayList arrayList = new ArrayList();

	@Override
	public boolean isLogin(String username, String password) {
		// TODO Auto-generated method stub
		boolean flag = false;
		for (User user : arrayList) {
			if (user.getName().equals(username) && user.getPassword().equals(password)) {
				flag = true;
				break;
			}
		}
		return flag;
	}

	@Override
	public void regist(User user) {
		// TODO Auto-generated method stub
		arrayList.add(user);
	}

}

エンティティークラスの定義
コード例i例i
package org.westos.entity;

public class User {
	private String name;
	private String password;

	public User() {
		super();
		// TODO Auto-generated constructor stub
	}

	public User(String name, String password) {
		super();
		this.name = name;
		this.password = password;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getPassword() {
		return password;
	}

	public void setPassword(String password) {
		this.password = password;
	}

}

数字を当てるゲーム
package org.westos.game;

import java.util.Scanner;

public class GuessNumberGame {
	private static Scanner sc;

	public GuessNumberGame() {
		super();
		// TODO Auto-generated constructor stub
	}

	public static void start() {
		sc = new Scanner(System.in);
		int num = (int) (Math.random() * 100 + 1);
		int count = 0;
		while (true) {
			System.out.println("      :");
			int guessNumber = sc.nextInt();
			count++;
			if (guessNumber > num) {
				System.out.println("     ");
			} else if (guessNumber < num) {
				System.out.println("     ");
			} else { // guessNumber==num
				System.out.println("     " + count + "    ");
				break;
			}
		}
	}
}

テストクラスの定義
package org.westos.test;

import java.util.Scanner;
import org.westos.dao.impl.UserDaoImpl;
import org.westos.entity.User;
import org.westos.game.GuessNumberGame;

public class UserTest {

	private static Scanner in;

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		while (true) {
			System.out.println("-----------    -----------");
			System.out.println("1.  ");
			System.out.println("2.  ");
			System.out.println("3.  ");
			UserDaoImpl userDaoImpl = new UserDaoImpl();
			System.out.println("       :");
			in = new Scanner(System.in);
			int choice = in.nextInt();
			switch (choice) {
			case 1:
				System.out.println("        ");
				String username = in.nextLine();
				System.out.println("       ");
				String password = in.nextLine();
				boolean flag = userDaoImpl.isLogin(username, password);
				if (flag) {
					System.out.println("           !!!");
					System.out.println("    ?y/n");
					while (true) {
						String string = in.nextLine();
						if (string.equalsIgnoreCase("y")) {
							GuessNumberGame.start();
							System.out.println("   ? y/n");
						} else {
							break;
						}
					}
				} else {
					System.out.println("              ");
				}
				break;
			case 2:
				System.out.println("            :");
				String newUserName = in.nextLine();
				System.out.println("       :");
				String newPassword = in.nextLine();
				//           User   
				User user = new User();
				user.setName(newUserName);
				user.setPassword(newPassword);
				userDaoImpl.regist(user);
				System.out.println("    ");
				break;
			case 3:
			default:
				System.out.println("    ,      ");
				System.exit(0);
				;
				break;
			}
		}
	}

}