equals

equals

1、为什么equals是String类中的方法,而不是Object中,Object才是Cat父类,而本视频中Cat与String并没有继承关系。

2、比较字符串时不能用==? 


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

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

3回答
万象天心 2020-03-03 21:11:52

Cat类中的属性name不就是String类的吗,那么getName返回的就是String类的对象,所以用equals是没有问题的啊

好帮手慕小脸 2020-02-28 10:03:13

同学你好,

    1、所有的Java类都继承Object类,所以通常默认继承Object类。String类继承Object类后,也继承了equals方法,因为比较的是两个String类型的属性,而String类就提供了equals方法来判断两个String类型是不是相同

    2、基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean
  他们之间的比较,应用双等号(==),比较的是他们的值。所以数字可以用==比较

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


好帮手慕小脸 2020-02-27 17:31:56

同学你好,

    1、针对于第一问,equals是String类中的方法,是视频中么?如果是,可以告诉一下具体的位置。老师看到equals是如下这种:

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

    2、因为JAVA中String并非基本数据类型而是一个类, 变量名实际代表地址,这个运算符只能够确定两个字符串是否放在同一个位置,这意味着,放在同一位置必然相等, 相等的字符串并不一定在同一位置!

也就是说用==判断两个内容相同的字符串可能返回false,所以不建议使用==,比较字符串可以用equals()

ps: "=="比较的是两个字符串的内存地址。  "equals"比较的是两个字符串的实际值。

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


  • 提问者 慕数据3539956 #1
    @Override public boolean equals(Object obj) { if(this==obj) return true; if(obj.getClass()==Cat.class ) { Cat cat=(Cat)obj; return (cat.getName().equals(name))&&(cat.getMonth()==month)&&(cat.getSpecies().equals(species)); } return true; } 1、老师你好,是该句cat.getName().equals(name)中equals,为什么在Cat类中可以调用String类中equals,本类(Cat类)没有继承String或实例化呀!而不是父类Object或本类(Cat类)中equals,希望老师能分析一下。 2、为什么数字可以用==比较?
    2020-02-27 19:27:58
问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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