大神,帮我看下这段代码,我感觉自己就是智障

大神,帮我看下这段代码,我感觉自己就是智障

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package password;
 
public class User{
    String name;
    String password;//定义属性用户名、密码
    public User(){
         
         
    }
    public User(String name,String password){
        this.setName(name);
        this.setPassword(password);
    }
    public String getName(){
        return this.name;
    }
    public void setName(String name){
        this.name=name;
    }
    public String getPassword(){
        return this.password;
    }
    public void setPassword(String password){
        this.password=password;
    }
     
    public String info(){
        return "用户名:"+this.getName()+"\n密码:"+this.getPassword();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package password;
 
public class Test {
 
    public static void main(String[] args) {
        User one=new User("Lucy","123456");
        System.out.println(one.info());
        User two=new User("Mike","123456");
        System.out.println(two.info());
        System.out.println("==============");
        UserManager ok=new UserManager();
        System.out.println(ok.checkUser(one, two));
    }
 
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package password;
 
public class UserManager{
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
        String str1 = null;
        String str2=null;
        if(one.name==null|two.name==null){
            str1= "用户名为空";// 判断用户名是否为空,是否一致
       }else if(one.name!=two.name){
            str1= "用户名不一致";
       }
 
     if(one.password==null|two.password==null){
         str2= "密码为空";// 判断密码是否为空,是否一致
     }else if(one.password!=two.password){
         str2= "密码不一致";
     }else if(one.password==two.password){
         str2= "哈哈";
    }// 判断密码是否为空,是否一致
return str1,str2;
    }
}

最后判断不了 

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
喜欢做梦的鱼 2018-05-26 11:11:36

1、整体结构可以使用if...else if...else if...else 的模式,以便在用户名不一致的时候,就不用继续判断密码了。

2、用户名判断时,else if中的one.name.equals(two.name) 可以直接修订为:

1
2
else if( !(one.name.equals(two.name))) 
  str="用户名不一致";

去掉后面的else

  • 提问者 广州麻辣牛杂档 #1
    那如何返回呢?能把整段发给我吗
    2018-05-26 13:45:28
  • if(!one.getUserName().equals(two.getUserName())){ System.out.println("用户名不一致"); } if(!one.getPassWord().equals(two.getPassWord())){ System.out.println("密码不一致"); }
    2018-05-27 12:14:44
提问者 广州麻辣牛杂档 2018-05-25 20:09:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package password;
 
public class UserManager {
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
        String str = null;
        if (one.name == null | two.name == null) {
            str = "用户名为空";
        else if (one.name.equals(two.name)) {
         
        else {
            str = "用户名不一致";// 判断用户名是否为空,是否一致
        }
 
        if (one.password == null | two.password == null) {
            str = "密码为空";// 判断密码是否为空,是否一致
        else if (one.password.equals(two.password)) {
         
        else {
            str = "密码不一致";// 判断用户名是否为空,是否一致
        }
        return str;
    }
}

这样写对吗

提问者 广州麻辣牛杂档 2018-05-25 19:47:15
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package password;
 
public class UserManager {
    // 用户信息验证的方法
    public String checkUser(User one, User two) {
        String str = null;
        if (one.name == null | two.name == null) {
            str = "用户名为空";
        else if (one.name != two.name) {
            str = "用户名不一致";
        }// 判断用户名是否为空,是否一致
 
        if (one.password == null | two.password == null) {
            str = "密码为空";// 判断密码是否为空,是否一致
        else if (one.password != two.password) {
            str = "密码不一致";
        // 判断密码是否为空,是否一致
        return str;
    }
}

这样写对吗

好帮手慕雪 2018-05-25 17:44:32

1)UserManager中第9,11,15,17行,可以直接 return  那个字符串。18,19行删除,21行返回:信息一致。2)字符串内容的判断不要用==,要用equals()进行判断。3)User类中的属性要改成private私有类型,那么UserManager类中,使用属性值时例如:不要.password,要用其对应的get()方法。祝:学习愉快

  • 提问者 广州麻辣牛杂档 #1
    可以直接帮我修改代码发给我对照吗? 一开始我只定义一个str,但是只能返回其中一个信息,比如用户名和密码都不对的情况下,我只能返回用户名不一致。我想让用户名和密码不一致的情况下,能返回两个信息
    2018-05-25 17:48:13
  • 不用返回两个的,只要有一项内容不同就已经不同了哦。
    2018-05-25 17:50:31
  • package password; public class UserManager { // 用户信息验证的方法 public String checkUser(User one, User two) { String str = null; if (one.name == null | two.name == null) { str = "用户名为空"; } else if (one.name != two.name) { str = "用户名不一致"; }// 判断用户名是否为空,是否一致 if (one.password == null | two.password == null) { str = "密码为空";// 判断密码是否为空,是否一致 } else if (one.password != two.password) { str = "密码不一致"; } // 判断密码是否为空,是否一致 return str; } } 这样写对吗
    2018-05-25 19:46:47
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码