做了一个注册和登录的。注册放到MAP,登录的时候进行比较。大意如下:
/*
* ID类,[抽象类]
*///省略部分代码private String user ;
private String password;//set,get的省略Map <Object,Object> idinput = new HashMap();/*
*Regigster类,继承Id
*///省略部分代码System.out.println ("输入用户名:")
setUser(sc.next);
System.out.println ("输入密码:")
setPassword(sc.next);
//用户名及密码的验证
idinput.put(getUser(),getPassword());//存入MAP/*
*Login类,继承ID
*///用了很多方法没弄好,请提示下这该怎么写。。只实现验证新输入的用户名和密码是否在MAP里面有相对的//自己这么写的if(getUser().equals(idinput.get(o)));//别的不知道了,求指导。。
/*
* ID类,[抽象类]
*///省略部分代码private String user ;
private String password;//set,get的省略Map <Object,Object> idinput = new HashMap();/*
*Regigster类,继承Id
*///省略部分代码System.out.println ("输入用户名:")
setUser(sc.next);
System.out.println ("输入密码:")
setPassword(sc.next);
//用户名及密码的验证
idinput.put(getUser(),getPassword());//存入MAP/*
*Login类,继承ID
*///用了很多方法没弄好,请提示下这该怎么写。。只实现验证新输入的用户名和密码是否在MAP里面有相对的//自己这么写的if(getUser().equals(idinput.get(o)));//别的不知道了,求指导。。
...
}
//Id类public abstract class Id {
private String user ; //用户名
private String password ; //密码
Scanner sc = new Scanner (System.in);
//录入用户名
public void setUser (String user){
this.user=user;
}
public String getUser (){
return user;
}
//录入密码
public void setPassword (String password){
this.password=password;
}
public String getPassword (){
return password ;
}
/**
* 定义用户名
*/
Map <Object,Object> idinput = new HashMap(); //定义用户名,密码的输入
}
//注册类public class Register extends Id { public Register() {
super();
}
/*
* 录入用户名和密码
*/
public void registers (){
System.out.println("输入用户名>>>>>>大于6位:");
setUser(sc.next());//录入用户名
if (getUser().length()>6){
//用户名长度符合要求时不输出
//否则输出错误提示
System.out.println("输入密码>>>>>>大于10位");
setPassword(sc.next());//录入密码
if (getPassword().length()>10){
//密码长度符合要求时不输出提示
idinput.put(getUser(), getPassword());//当用户名和密码都正确的时候,即存入Map中.
}else{
System.out.println(">..<密码长度不够");
}
}else {
System.out.println(">..<.用户名长度不够啊,亲");
}
}}
public class Login extends Id { /**
* 定义登陆
*/
public Login (){
super();
}
/*private String user1 ; //用户名
private String password1; //密码
Scanner sc = new Scanner (System.in);
//录入用户名
public void setUser1 (String user1){
this.user1=user1;
}
public String getUser1 (){
return user1;
}
//录入密码
public void setPassword1 (String password1){
this.password1=password1;
}
public String getPassword1 (){
return password1 ;
}
*/
public void logins (){
System.out.println(">>>>>>>>>>>>欢迎光临登陆>>>>>>>>>>>>>>>");
System.out.println("请输入用户名:");
setUser(sc.next());
System.out.println("请输入密码:");
setPassword(sc.next());
if (idinput.containsKey(getUser())&&idinput.containsKey(getPassword())){//取出Map里面的值和新输入的值比较,然后返回状态(true/false)
//用户名正确,不输出
// if (getPassword().equals(idinput.containsValue(getPassword()))){
// //密码正确不输出
// }
System.out.println("登陆成功>>>>>>");
}else{
System.out.println("登陆失败!");
}
// System.out.println(getUser().equals(idinput.containsKey(getUser())));//用户名
// System.out.println(getPassword().equals(idinput.containsValue(getPassword())));//密码
}
}
Register和Login是两个不同的类,如果你new了两个对象,那么idinput就是不同对象里的map,里面的信息是不一样的
最简单的方法就是LZ把Id类的
Map <Object,Object> idinput = new HashMap(); //定义用户名,密码的输入
改成
static Map <Object,Object> idinput = new HashMap(); //定义用户名,密码的输入
这样Register和Login就能共享这个map了