luyantl 发表于 2018-9-9 23:39:02

Java中equals()方法覆写疑问

//equals()方法覆写
class Person
{
        private String name;
        private int age;
        public Person(String name,int age)
        {
                this.name=name;
                this.age=age;
        }
       
        }
        public String toString()
        {
                return "姓名-->"+this.name+"年龄-->"+this.age;
        }
        public boolean equals(Object obj)
        {
               
                Person per=(Person) obj;
                return this.name.equals(per.name) && this.age==per.age;                // 在equals()方法中再调用equals方法?
        }
}
public class JavaDemo_0909_2334
{
        public static void main(String[] args)
        {
                Person perA=new Person("张三",22);
                Person perB=new Person("张三",22);
                System.out.println(perA.equals(perB));
        }
}


luyantl 发表于 2018-9-9 23:40:15

      public boolean equals(Object obj)
      {
               
                Person per=(Person) obj;
                return this.name.equals(per.name) && this.age==per.age;                // 在equals()方法中再调用equals方法?
      }

这段equals()方法的覆写,为什么方法中又包含equals方法,没有形成死循环么?

kaneko 发表于 2018-9-11 01:09:26

这个其实不难,主要看equals方法是属于哪个对象的,楼主写的是Person类的equals方法,而代里面调用的是name这个变量对应字符串的equals方法,不一样的
页: [1]
查看完整版本: Java中equals()方法覆写疑问