2017-09-16
这是我在博客园的第一篇学习笔记。
Java小白,努力进阶中...
今天学的是用户登录注册功能。
4个包:
itcast.cn.user包 User.java 用户类,描述用户基本信息,包括成员变量,无参构造函数,带参构造(可有可无).get和set方法
1 package itcast.cn.day22; 2 /* 3 * 用户基本描述包类 4 */ 5 6 public class User { 7 private int userName; 8 private int passWord; 9 public User(){ 10 super(); 11 } 12 public User(int userName,int passWord){ 13 super(); 14 this.userName=userName; 15 this.passWord=passWord; 16 } 17 public int getUserName() { 18 return userName; 19 } 20 public void setUserName(int userName) { 21 this.userName = userName; 22 } 23 public int getPassWord() { 24 return passWord; 25 } 26 public void setPassWord(int passWord) { 27 this.passWord = passWord; 28 } 29 30 }
tcast.cn.uerDao包 UserDao.java 定义一个接口,声明登录注册功能
1 public interface UserDao { 2 2 public abstract boolean islogin( String userName, String passWord); 3 3 public abstract void register(User user); 4 4 }
itcast.cn.userDaoImpl包 UserDaoImpl.java 实现UserDao接口,具体描述登录注册方法。
需要注意的是:在登录方法中,返回值boolean flag = true 即登录成功
在实现过程中需要注意的一点是:全局变量br,bw的声明一定要放在try大括号外
IO版本实现方法代码如下:
1 public class UserDaoImpl implements UserDao{ 2 3 @Override 4 public boolean islogin(String userName, String passWord) { 5 boolean flag = false; 6 BufferedReader br = null; 7 try { 8 br = new BufferedReader(new FileReader("user,txt")); 9 String line = null; 10 11 while((line=br.readLine())!=null){ 12 String[] datas = line.split("="); 13 if(datas[0].equals(userName)&&datas[1].equals(passWord)){ 14 flag = true; 15 break; 16 } 17 } 18 } 19 catch (FileNotFoundException e) { 20 //e.printStackTrace(); 21 System.out.println("用户信息获取失败"); 22 }catch (IOException e) { 23 //e.printStackTrace(); 24 System.out.println("用户登录失败"); 25 } 26 if(br!=null){ 27 try { 28 br.close(); 29 } catch (IOException e) { 30 //e.printStackTrace(); 31 System.out.println("用户释放资源失败"); 32 } 33 } 34 return flag; 35 } 36 37 @Override 38 public void register(User user) { 39 BufferedWriter bw = null; 40 try { 41 bw = new BufferedWriter(new FileWriter("user.txt")); 42 bw.write(user.getUserName()+"="+user.getPassWord()); 43 bw.newLine(); 44 } catch (IOException e) { 45 //e.printStackTrace(); 46 System.out.println("注册失败"); 47 }finally{ 48 if(bw!=null){ 49 try { 50 bw.close(); 51 } catch (IOException e) { 52 //e.printStackTrace(); 53 System.out.println("注册释放资源失败"); 54 } 55 } 56 } 57} 58 }
itcast.cn.usertest包 UserTest类 测试类
在这个类中,存在一个未解决的问题:
scanner函数无法一个一个的输入,另外构造方法中的(true)需要多看。
1 package itcast.cn.day22; 2 3 import java.util.Scanner; 4 5 public class UserTest { 6 public static void main(String[] args) { 7 //欢迎界面 8 while(true){ 9 UserDao ud = new UserDaoImpl(); 10 System.out.println("*****欢迎进入*****"); 11 System.out.println("登录请输入1"); 12 System.out.println("注册请输入2"); 13 System.out.println("返回请输入3"); 14 15 System.out.println("请输入你的选择:"); 16 Scanner sc = new Scanner(System.in); 17 int choice = sc.nextInt(); 18 switch(choice){ 19 case 1: 20 System.out.println("*****登录界面*****************"); 21 //Scanner sc1 = new Scanner(System.in); 22 System.out.println("请输入用户名:"); 23 String userName = sc.nextLine(); 24 System.out.println("请输入密码:"); 25 String passWord = sc.nextLine(); 26 27 boolean flag = ud.islogin(userName, passWord); 28 if(flag){ 29 System.out.println("登录成功"); 30 break; 31 }else{ 32 System.out.println("用户名或密码错误"); 33 } 34 35 case 2: 36 System.out.println("*****注册界面****************"); 37 System.out.println("请输入用户名:"); 38 String userName1 = sc.nextLine(); 39 System.out.println("请输入密码:"); 40 String passWord1 = sc.nextLine(); 41 42 User user = new User(); 43 user.getUserName(); 44 user.getPassWord(); 45 ud.register(user); 46 System.out.println("注册成功"); 47 break; 48 case 3: 49 default: 50 System.out.println("谢谢使用,欢迎下次再来"); 51 System.exit(0); 52 break; 53 } 54 } 55 } 56 }
时间: 2024-10-25 17:44:55