请选择 进入手机版 | 继续访问电脑版
本站特色:极好的技术研究氛围!所有技术交流,必有回复!

疯狂Java联盟

 找回密码
 加入联盟
查看: 53|回复: 0

[疯狂Java讲义] 学习求助

[复制链接]
发表于 2020-2-10 17:05:08 | 显示全部楼层 |阅读模式
各位前辈:
class Person
{
      private String name;
      private String idstr;
      public Person(){}
      public Person(String name , String idstr)
      {
             this.name = name;
             this.idstr = idstr;
      }
      public void setName(String name)
      {
            this.name = name;
      }
      public String getName()
      {
             return this.name;
      }
      public void setIdstr(String idstr)
      {
            this.idstr = idstr;
      }
      public String getIdstr()
      {
             return this.idstr;
      }      
      public boolean equals(Object obj)
      {
             if (this == obj)
                   return true;
             if (obj != null && obj.getClass() == Person.class)
             {
                   Person personObj = (Person)obj;
                   if (this.getIdstr().equals(personObj.getIdstr()))
                   {
                          return true;
                   }
             }
             return false;
      }
}
public class OverrideEqualsRight
{
       public static void main(String[] args)
       {
               Person p1 = new Person("孙悟空" , "1234567890");
               Person p2 = new Person("孙悟空" , "1234567890");
               Person p3 = new Person("孙空" , "123456789");
               System.out.println("p1和p2是否相等:" + p1.equals(p2));
               System.out.println("p1和p3是否相等:" + p1.equals(p3));
       }
}
我的问题是:
         重写equals()方法时,最后的return false;语句和前面的两个if语句是什么关系?省略后或者给后一个if语句加上else后都会报错:没有返回语句,为什么?
您需要登录后才可以回帖 登录 | 加入联盟

本版积分规则

微信群请扫二维码
QQ交流1群:
545923995
(未满)

小黑屋|手机版|Archiver|疯狂Java联盟 ( 粤ICP备11094030号 )

GMT+8, 2020-2-20 09:18 , Processed in 0.214383 second(s), 6 queries , File On.

快速回复 返回顶部 返回列表