老师,请检查我的代码,谢谢

老师,请检查我的代码,谢谢

User类

package com.imooc.duixiang;


public class Users {

  // 类的属性: 用户名name 密码password

private String name;

    private int password;

    public Users() {

    }

    public Users(String name,int password) {

    this.name=name;

    this.password=password;

    }

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getPassword() {

return password;

}

public void setPassword(int password) {

this.password = password;

}

}


UersTests类

package com.imooc.duixiang;


public class UersTests {

     public String bijiao(String name1,String name2) {

      String str;

    if(name1==name2) {

    str="true";

    }else {

    str="flase";

    }

    return str;

     }

public static void main(String[] args) {

Users yonghu1=new Users("Lucy",123456);

Users yonghu2=new Users("Mike",123456);

UersTests str=new UersTests();

     System.out.println("用户名:"+yonghu1.getName()+"\n"+"密码:"+yonghu1.getPassword());

     System.out.println("用户名:"+yonghu2.getName()+"\n"+"密码:"+yonghu2.getPassword());

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

  if(str.bijiao(yonghu1.getName(),yonghu2.getName()).equals(yonghu2)) {

  System.out.println("用户名和密码一致");}

  else

  System.out.println("用户名或密码不一致");

  }

}


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

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

1回答
好帮手慕阿园 2021-08-19 11:10:26

同学你好,同学的代码跟作业要求实现有点差距,用户名和密码一致的情况下也会显示不一致,如下

http://img1.sycdn.imooc.com//climg/611dc71c09803c7e01760136.jpg

同学的作业中有如下位置需要修改

1、对字符串内容的比较应该使用equals()方法

http://img1.sycdn.imooc.com//climg/611dc79b094bfa6a04060172.jpg

2、bijiao()方法返回的是字符串,而yonghu2是对象,使用字符串和对象比较,返回肯定是false

http://img1.sycdn.imooc.com//climg/611dc7e409e15d6306280105.jpg

3、作业中要求需要判断用户名和密码都一致的情况下返回用户名密码一致,而同学只判断了用户名是否相同

http://img1.sycdn.imooc.com//climg/611dc87909c2449704370397.jpg

可以定义一个方法,传入两个Users类型的参数,在该方法中判断用户名密码是否一致,如下

public String bijiao(Users one, Users two) {
    if(one.getName().equals(two.getName()) && (one.getPassword()==(two.getPassword()))) {
        return "用户名或密码一致";
    }else {
        return "用户名或密码不一致";
    }
}

在实体类中直接调用该方法,传入参数即可

String result  = str.bijiao(yonghu1, yonghu2);
System.out.println(result);

祝学习愉快~

  • 提问者 嫣语四然 #1

    老师,问一下:

    第1个修改中使用equals方法是指把我写的bijiao方法的方法名改为equlas是吗?还是说equals本来就是Java的一个方法?是什么方法老师可以讲一下吗?我没有学过。

    2 老师定义的bijiao方法中要传入Users类型的参数,问一下Users是什么参数类型?之前的课没有讲。

    3 老师在if语句中用户名的比较用equals方法,密码的比较用==号比较,是因为用户名是字符串而密码是int类型是吗?

    4 老师在 

    if(one.getName().equals(two.getName()) && (one.getPassword()==(two.getPassword())))

    这条语句中用的是 &&,可以用& 代替吗?

    2021-08-21 08:46:36
  • 好帮手慕阿园 回复 提问者 嫣语四然 #2

    同学你好

    1、是的,equals是Object的方法,String类重写了equals方法,equals方法是用来比较两个对象是否"相等",如:x.euqals(y),若x与y"相等"则euqals方法返回ture,否则返回false。对用户名密码的判断可修改为如下代码:

    http://img1.sycdn.imooc.com//climg/60dbe3c7094f011711970212.jpg

    在后面课程中有详细的讲解,这里同学可以先了解下

    2、Users类型是指传入一个对象类型的参数,在方法中可以使用该参数调用该类中的方法,原理跟传入String类型的方法同理,转入String类型的参数可以在方法中对该参数进行操作,同理,Users类型的也是一样,可以获取该对象的属性值等

    3、是的,字符串的比较需要使用equals方法

    4、是可以的,但是&&比&效率高,所以一般推荐使用&&

    祝学习愉快~

    2021-08-21 10:01:05
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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