请问为啥密码不一致会被输出,明明设置的密码是一致的

请问为啥密码不一致会被输出,明明设置的密码是一致的

public class Test{

    // 测试方法

public static void main(String[] args) {

     //实例化对象,调用相关方法实现运行效果

     User one=new User();

     User two=new User();

one.setUserName("Lucy");

one.setPwd("123456");

two.setUserName("Mike");

two.setPwd("123456");

System.out.println(one.getUserName());

System.out.println(one.getPwd());

System.out.println(two.getUserName());

System.out.println(two.getPwd());

System.out.println("====================");

UserManager x=new UserManager();

x.checkUser(one,two);  

}

}


正在回答

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

2回答

同学你好,当比较String类型时的数据时,==比较的是他们在内存中的存放地址。equals比较的才是String中存放字符串的值。所以,按如下图进行修改:

http://img1.sycdn.imooc.com//climg/5c9309ba0001bedf05740488.jpg

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 慕圣7039450 提问者 #1
    equals 除了判断String类型的值,请问其他类型的适用吗?
    2019-03-21 11:55:00
  • 吃吃吃鱼的猫 回复 提问者 慕圣7039450 #2
    同学,你好。equals并不是只能判断String类型,equals是Object类中的方法,也就是说所有继承Object类的子类都是拥有equals方法的,也就是说所有继承java.lang.Object类的子类创建的对象都是可以equals判断的,比如Integer,Boolean,Long、包括集合类型List,Map等都是具有可以使用equals方法判断的。如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
    2019-03-21 12:04:22
吃吃吃鱼的猫 2019-03-21 11:19:26

同学你好,首先在代码中,密码都是123456,两者密码是一致的,用户名才不一致哦。其次,判断“用户名和密码是否一致”的代码在checkUser()方法中,建议同学贴出checkUser()方法的代码,老师才能帮助解决~祝学习愉快~

  • 提问者 慕圣7039450 #1
    public class UserManager{ // 用户信息验证的方法 public void checkUser(User one,User two){ // 判断用户名是否为空,是否一致 //User one=new User(); //User two=new User(); //String a,b; String a=one.getUserName(); String b=two.getUserName(); if((a==null)||(b==null)){ System.out.println("用户名不能为空"); } if(a!=b){ System.out.println("用户名不一致"); } // a=one.getUserName(); //b=two.getUserName(); // 判断密码是否为空,是否一致 //String c,d; String c=one.getPwd(); String d=two.getPwd(); if((c==null)||(d==null)){ System.out.println("密码不能为空"); } if(c!=d){ System.out.println("密码不一致"); } } }
    2019-03-21 11:38:32
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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