该代码实现了两个对象的比较
1.比较对象的引用: 使用==运算符比较两个对象的引用,即它们是否指向内存中的同一个对象。如果两个引用指向同一个对象,则它们相等;否则,它们不相等。
2.使用equals方法比较对象内容:在Java中,定义了equals方法,用于比较对象的内容是否相等。
package com.zsh.java;
public class Person {
private String name;
private String sex;
private int age;
public Person(){//无参构造方法
}
public Person(String name,String sex,int age){//有参构造方法
this.name = name;
this.sex = sex;
this.age = age;
}
//getter,setter方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public boolean equals(Person other) {//比较两个Person对象
boolean flag = false;
if(other==null){
return false;
}
//this表示当前对象,other表示比较对象,比较它们的name,sex,age
if(this.name.compareToIgnoreCase(other.name)==0&this.sex.compareToIgnoreCase(other.sex)==0&this.age==age){
flag = true;
}
return flag;
}
}
package com.zsh;
import com.zsh.java.Person;
public class Demo003 {
public static void main(String[] args) {
Person p1 = new Person("张三","男",25);
Person p2 = new Person("张三","男",25);
boolean comp = p1.equals(p2); // 比较p1与p2的内容
boolean compAddress = (p1==p2); //比较p1与p2的地址
System.out.println("p1与p2比较内容的结果是" + comp);
System.out.println("p1与p2比较引用的结果是" + compAddress);
}
}
结果展示: