当前位置: 代码迷 >> J2SE >> 看看哪位高手能有更简单的方法,大牛们出招吧!
  详细解决方案

看看哪位高手能有更简单的方法,大牛们出招吧!

热度:29   发布时间:2016-04-24 00:51:30.0
看看谁能有更简单的方法,大牛们出招吧!!!!!!

今天比较闲暇,写了一个小程序,就是一个登录相关的

从键盘中输入,用main方法接收,user:abc 和password:123

当输入错误时,应该再次输入用户名和密码,知道正确为止。

以下是我的实现方式,我想看看谁有更简单的没有,欢迎指点:

LoginEntity
Java code
public class LoginEntity {    private String name;    private String password;        public LoginEntity(String name,String password){        this.name = name;        this.password = password;    }        public boolean validate(){        if(name.equals("abc")&&password.equals("123")){            return true;        }else{            return false;        }                }}


Operate
Java code
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Operate {    private String str[];        public Operate(String str[]){        this.str = str;        if(str.length!=2){            System.out.println("输入的参数不正确");            System.exit(1);            //JVM运行终止,设置一个非0的参数即可        }    }        //用户再次输入    public static void inputTest(){                        System.out.println("请再次输入用户名和密码");                                String str[] = new String[2];            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));                        for (int i = 0; i < str.length; i++) {                try {                    str[i] = br.readLine();                } catch (IOException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                }            }                                }        public boolean getInfo(){        if(new LoginEntity(this.str[0], this.str[1]).validate()){            return true;        }else{            return false;        }    }}


Login
Java code
package mystudy.j2se.DemoLogin02;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Login {    public static void main(String[] args) {                System.out.println("请输入用户名和密码");                String str[] = new String[2];        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));                for (int i = 0; i < str.length; i++) {            try {                str[i] = br.readLine();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }                        Operate o = new Operate(str);                if(!o.getInfo()){            System.out.println("登录失败");                        o.inputTest();                    }else{            System.out.println("登陆成功");        }            }        }


谢谢大家指点, 看看有木有 更简单的

------解决方案--------------------
public boolean validate(){
if(name.equals("abc")&&password.equals("123")){
return true;
}else{
return false;
}

 }
 public boolean getInfo(){
if(new LoginEntity(this.str[0], this.str[1]).validate()){
return true;
}else{
return false;
}
 }
这两处的判断有点像画蛇添足。
直接return name.equals("abc")&&password.equals("123");
return new LoginEntity(this.str[0], this.str[1]).validate();
------解决方案--------------------
  相关解决方案