/*题目简述:
* 自定义一个Person类,有name和age属性,并建一个两个参数的构造函数,
* 在主函数main中,定义两个Person对象p1和p2,如下,调用equals比较这个两个对象是否相等。
Person p1 = new Person(“xiaowang”,12);
Person p2 = new Person(“xiaowang”,12);
p1.equals(p2);
*/
/*分析
如果不重写equals()方法的话,返回的是false,因为Objec类中equals()方法用的是“==”比较
String类型之所以能进行内容的比较是因为String类中重写了equals()方法
故,在此处要想比较对象的内容是否相同,也得重写equals()方法
*/
public class Test5 {
public static void main(String[] args) {
Person p1 = new Person("xiaowang",12);
Person p2 = new Person("xiaowang",12);
System.out.println(p1.equals(p2));
}
}
class Person {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
Person() {
}
Person(String name,int age) {
this.name = name;
this.age = age;
}
public boolean equals(Object obj) {
Person p1 = (Person) obj;//将Object强制为Person
return ((p1.name == name) && (p1.age == age));
}
}