比較記憶體地址與內容
阿新 • • 發佈:2019-01-21
A == B 比較的是兩個的引用,是否指向同一塊記憶體地址。
A.equals(B) 比較的是A,B裡面的內容是否相同,常需要複寫 Class A 的equals 內容。
//比較A,B裡面內容是否相同 equals 方法。
public class A {
String name;
int age;
public A (String name, int age){
this.name= name;
this.age= age;
}
public boolean equals( Object o) {
if( o instanceof A)
{
A a2= (A) o;
if(this.name == a2.name && this.age == a2.age)
return true;
}
else
return false;
}
}
== 比較的是兩個記憶體地址
A a= new A ("simon", 25);
A b= new A ("simon", 25);
if( a== b) //false, 因為new 開闢了兩個記憶體空間。
if(a.equals(b)) //true ,呼叫複寫的equals函式.