1-9练习问题

1-9练习问题

public class Test {

    public static void main(String[] args) {

        User u = new User("", "123456");
        //用户名为空,依然输出是用户名不一致是什么情况?
        //User u = new User(null, "123456");设置成null才能显示用户名输入为空
        User u1 = new User("Mike", "123456");
        u.yhxx();
        u1.yhxx();
        System.out.println("===========================");
        UserManager um = new UserManager();
        um.checkUser(u, u1);
    
    }
    
    public class User {

    private String user;
    private String password;

    public void yhxx() {
        System.out.println("用户名:" + getUser());
        System.out.println("密码:" + getPassword());
    }

    public User(String user, String password) {
        this.user = user;
        this.password = password;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

}
public class UserManager {
    public String checkUser(User u, User u1) {
        if (u.getUser() != null && u1.getPassword() != null) {
            if (u.getUser().equals(u1.getUser())) {
                System.out.println("用户名一致");
            } else {
                System.out.println("用户名不一致");
            }
        } else {
            System.out.println("用户名输入为空");
        }

        return null;

    }

}


       User u = new User("", "123456");
       //用户名为空,依然输出是用户名不一致是什么情况?
       //User u = new User(null, "123456");设置成null才能显示用户名输入为空

String的字符是不是只有输入null才能被判定为空?

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

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

3回答
提问者 白日梦想家XJQ 2017-05-14 12:50:15
public class Test {

    public static void main(String[] args) {
        
        Scanner sc=new Scanner(System.in);
        sc.next();
        String x=sc.next();
        
        User u = new User(x, "123456");
        User u1 = new User("Mike", "123456");
        u.yhxx();
        u1.yhxx();
        System.out.println("===========================");
        UserManager um = new UserManager();
        um.checkUser(u, u1);
    
    }

}

想将用户名改成手动输入,一运行就卡主,不知道哪里出了问题?

慕运维2858188 2017-05-14 08:31:40

因为 ""!=null 是true  所以根本就不到了下面的为空的else的语句块里  你如果会调试 直接调试就可以很清楚程序运行的流程    

  • 提问者 白日梦想家XJQ #1
    User u = new User(null, "123456"); 是不是只有把用户名写成null才能判定为false? String的字符是不是只有输入null才能被判定为空?
    2017-05-14 12:03:50
提问者 白日梦想家XJQ 2017-05-13 23:47:06

public String checkUser(User u, User u1)

还有这句话里面的User u,User u1应该怎么理解?


是引用User类里面这句话的User构造方法??然后申明2个对象u,u1?

public User(String user, String password) 

有点乱。


  • 你可以理解成,主方法中的u和u1传递到了checkUser方法中。而public String checkUser(User u, User u1)中的u和u1是用来接收主方法传递给它的两个对象的,它中什么无所谓,例如public String checkUser(User uu, User uu1)。为什么要写个checkUser方法,搞这么麻烦还要传给checkUser方法两个对象呢,这是了为重用。祝:学习愉快
    2017-05-15 18:51:02
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

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