黑马程序员技术交流社区

标题: 不理解这段代码,求指导 [打印本页]

作者: danielchung6600    时间: 2016-6-21 23:12
标题: 不理解这段代码,求指导
@Override
public boolean equals(Object obj) {
  if (this == obj)
   return true;
  if (obj == null)
   return false;
  if (getClass() != obj.getClass())
   return false;
  Person other = (Person) obj;
  if (age != other.age)
   return false;
  if (name == null) {
   if (other.name != null)
    return false;
  } else if (!name.equals(other.name))
   return false;
  return true;
}*/

作者: crazymen    时间: 2016-6-21 23:31
这是对equals的重写;
public boolean equals(Object obj) {
                if (this == obj)                                                //调用的对象和传入的对象是同一个对象
                        return true;                                                //直接返回true
                if (obj == null)                                                //传入的对象为null
                        return false;                                                //返回false
                if (getClass() != obj.getClass())                //判断两个对象对应的字节码文件是否是同一个字节码
                        return false;                                                //如果不是直接返回false
                Person other = (Person) obj;                        //向下转型
                if (age != other.age)                                        //调用对象的年龄不等于传入对象的年龄
                        return false;                                                //返回false
                if (name == null) {                                                //调用对象的姓名为null
                        if (other.name != null)                                //传入对象的姓名不为null
                                return false;                                        //返回false
                } else if (!name.equals(other.name))        //调用对象的姓名不等于传入对象的姓名
                        return false;                                                //返回false
                return true;                                                        //返回true



作者: danielchung6600    时间: 2016-6-21 23:33
crazymen 发表于 2016-6-21 23:31
这是对equals的重写;
public boolean equals(Object obj) {
                if (this == obj)                                                //调用的对象和传入的 ...

太感谢了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2