== 运算符
是一个比较运算符,既可以判断基本类型,又可以判断引用类型
- 如果判断基本类型,判断的是值是否相等。
- 如果判断引用类型,判断的是地址是否相等,即判定是不是同一个对象
注意: 判断引用类型时 == 两边的引用必须是同一个类型,否则编译报错
equals方法
equals是Object类中的方法,只能判断引用类型,默认判断的是地址是否相等,子类中往往重写该方法,用于判断内容是否相等。比如lnteger,String
代码示例
class Person{ //extends Object
private String name;
private int age;
private char gender;
//重写 Object 的 equals 方法
public boolean equals(Object obj) {
//判断如果比较的两个对象是同一个对象,则直接返回 true
if(this == obj) {
return true;
}
//类型判断
if(obj instanceof Person) {//是 Person才比较
//进行向下转型, 因为需要得到obj的各个属性
Person p = (Person)obj;
return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
}
//如果不是 Person ,则直接返回 false
return false;
}
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}