1、基本类型的“==”比较数值;
引用类型的 “= =”比较对象的地址;
public class Person {
private String name;
private int num;
public Person(String name, int num) {
this.name = this.name;
this.num = this.num;
}
public String getName() {
return name;
}
public int getNum() {
return num;
}
}
public class test {
public static void main(String[] args) {
// 基本数据类型比较的是值
int a = 10;
int b = 10;
System.out.println( a == b );
// 引用数据类型比较的是对象地址值
Person p1 = new Person("陈志海",24);
Person p2 = new Person("陈志海",24);
System.out.println(p1 == p2);
System.out.println(p1.equals(p2));
}
}
true
false
false
2、重写 equals 方法
public class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public int getage() {
return age;
}
@Override
public boolean equals(Object obj){
if(obj instanceof Person){
// 向下的强制类型转换 → 为了使用子类-Person类的属性
Person p = (Person) obj;
return (this.name.equals(p.name) && (this.age == p.age));
}
return false;
}
}
public class test {
public static void main(String[] args) {
Person p1 = new Person("陈志海",24);
Person p2 = new Person("陈志海",24);
System.out.println(p1.equals(p2));
}
}
true