qx7Adai11 2016-06-15 11:57 采纳率: 57.1%
浏览 1248
已采纳

Java多态:用 Set的子类 模拟登陆注册过程

User.java

package com.qf.homework;

public class User implements Comparable{
private String userName;
private String passWord;
public User(String userName, String passWord) {
super();
this.userName = userName;
this.passWord = 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;
}
@Override
public int hashCode() {
return 10;
}
@Override
public boolean equals(Object obj) {
User u=(User)obj;
return this.userName.equals(u.userName)&&this.passWord.equals(u.passWord);
}

@Override
public String toString() {
    return "User [passWord=" + passWord + ", userName=" + userName + "]";
}
@Override
public int compareTo(User o) {
    if(this.userName.equals(o.userName)&&(this.passWord==o.passWord)){
        System.out.println("比较");
        return 0;

    }else
    {
        System.out.println("0.0");
        return 1;
    }


}

}

Test.java
package com.qf.homework;

import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class Test {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
Set set=new TreeSet();
Set setR=new TreeSet();

while(true){
System.out.println("请你选择你需要的功能: 1.登陆          2.注册");
int c1=in.nextInt();//接收选择的数字
if(c1==1){

    System.out.println("请输入你的用户名:");
    String loginUser = in.next();//接收用户名
    System.out.println("请输入你的密码:");
    String loginpwd=in.next();//接收密码
    User user=new User(loginUser,loginpwd);
    System.out.println(setR.contains(loginUser));
    if(setR.contains(loginUser))
    {
        System.out.println(set.contains(user));
        System.out.println(set);
       if(set.contains(user))
       {
           System.out.println("登陆成功!");//判断用户是否可以登陆
       }
       else
       {
           System.out.println("登陆失败!");
       }
    }
    else
    {
        System.out.println("登陆失败!");
    }
}else if(c1==2)
{
    User user2=new User();
    System.out.println("请输入你想要注册的用户名");
    String  rUser=in.next();
    if(setR.add(rUser))
    {
        System.out.println("请输入你想要注册的密码");
        String rPwd=in.next();
        user2.setUserName(rUser);
        user2.setPassWord(rPwd);
        set.add(user2);
        System.out.println("注册成功");
        System.out.println(set);
    }
    else
    {
        System.out.println("注册失败 不能有相同的用户名!!!");
    }



}else
{
    System.out.println("输入有误,请你重新选择!!!!");
}
}

}
}

  • 写回答

3条回答 默认 最新

  • qx7Adai11 2016-06-15 12:31
    关注

    解决了
    public int compareTo(User o) {
    int m=this.userName.compareTo(o.userName);
    int n=this.passWord.compareTo(o.passWord);
    if(m==0&n==0)
    {
    return 0;
    }
    return -1;

    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。