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));
}
}
public boolean equals(Object obj)
{
Person per=(Person) obj;
return this.name.equals(per.name) && this.age==per.age; // 在equals()方法中再调用equals方法?
}
这段equals()方法的覆写,为什么方法中又包含equals方法,没有形成死循环么? 这个其实不难,主要看equals方法是属于哪个对象的,楼主写的是Person类的equals方法,而代里面调用的是name这个变量对应字符串的equals方法,不一样的
页:
[1]