equals方法 == 和equals的對比 ? ==是一個比較運(yùn)算符 1.==:既可以判斷基本類型,又可以判斷引用類型 2.==:如果判斷類型為基本類型,判斷的值是否相等 3.==:如果判斷的是引用類型,判斷的是地址是否相等,即是不是同一個對象 equals方法 1.equals:是Object類中的方法,只能判斷引用類型 2.默認(rèn)判斷的是地址是否相等,子類中往往重寫該方法,用于判斷內(nèi)容是否相等。 //案例 //判斷兩個Person對象的額內(nèi)容是否相等,如果兩個對象的各個屬性值 //(內(nèi)容一樣即可,不需要對象(地址)相同) // 都一樣則返回true 否則 返回 false
public class Equals01 {//重寫equals 用法
public static void main(String[] args) {
//案例
//判斷兩個Person對象的額內(nèi)容是否相等,如果兩個對象的各個屬性值
//(內(nèi)容一樣即可,不需要對象(地址)相同)
// 都一樣則返回true 否則 返回 false
Person person = new Person("Tom",18,'男');
Person person2 = new Person("Tom",18,'男');
Person person3 = new Person("kangkang",18,'男');
System.out.println(person.equals(person2));//true
System.out.println(person.equals(person3));//false
}
}
//Person類
class Person{//Object類是所有類的父類 默認(rèn)Person extends Object
private String name;
private int age;
private char gender;
//重寫Object類中的 equals方法
public boolean equals(Object obj){
if(this == obj){//若兩個對象是同一個對象,即地址相同直接返回true,無需再比較內(nèi)容
return true;
}
if(obj instanceof Person){//先判斷是否是Person,是才比較
//向下轉(zhuǎn)型,為了得到obj的各個屬性
Person p1=(Person) obj;
return this.name.equals(p1.name)&&this.age==p1.age&&this.gender==
p1.gender;
}
else{//如果不是Person,則直接返回false
return false;
}
}
public Person(String name, int age, char gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
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;
}
public char getGender() {
return gender;
}
public void setGender(char gender) {
this.gender = gender;
}
}
equals 和 == 易錯使用案例集合文章來源地址http://www.zghlxwxcb.cn/news/detail-594821.html
public class Equals02 {//== 和 equals易錯的用法集合
//equals 方法 是Object中已經(jīng)定義好的方法
public static void main(String[] args) {
Person2 p1 = new Person2();
p1.name ="abcde";
Person2 p2 = new Person2();
p2.name ="abcde";
System.out.println(p1==p2);//不是同一個對象 false
System.out.println(p1.name.equals(p2.name));//p1.name 和 p2.name 是String
//類對象 已經(jīng)重寫過equals方法
//二者內(nèi)容相同 所以相等 true
System.out.println(p1.equals(p2));//p1 p2 是用戶自己定義的Person類
//未重寫equals方法 所以比較的是 二者是否為同一對象
//返回false
String s1 = new String("abs");
String s2 = new String("abs");
System.out.println(s1.equals(s2));//true
System.out.println(s1==s2);//false
}
}
//Person2類
class Person2{//extends Object Object類是所有類的父類
public String name;
}
文章來源:http://www.zghlxwxcb.cn/news/detail-594821.html
到了這里,關(guān)于equals方法的用法(java)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!