java基礎 Object的equals方法

2021-06-28 12:55:34 字數 1856 閱讀 5194

一:看第乙個例子

public class cat1 

public static void main(string args)

}

輸出結果:

false

false

cat1 == cat2 很簡單,他們不是同一物件,有不通的儲存位址。

但是cat1.equals(cat2)為什麼是false呢。因為cat是物件,這裡用的是父類的equals方法

而object類equals方法的實現為:

public boolean equals(object obj)

所以,obejct的equals方法本質上還是用==比較的。

二:嘗試重寫obejct的equals方法

public class cat2 

public string getcolor()

public void setcolor(string color)

public int getheight()

public void setheight(int height)

public int getweight()

public void setweight(int weight)

/*** 重寫object的equals方法

*/public boolean equals(object obj) else if (obj instanceof cat2)

} return false;

} public static void main(string args)

}

輸出結果:

true

三:string的equals方法

string s1 = "abc";

string s2 = "abc";

system.out.println(s1.equals(s2));

返回true,因為string就重寫了object的equals方法

具體重寫實現為:

public boolean equals(object anobject) 

if (anobject instanceof string)

return true;}}

return false;

}

java基礎 Object的主要方法

package test public class test7 這是它的底層 system.out.println s1 public final void notify 喚醒在此物件監視器上等待的單個執行緒。public final void notifyall 喚醒在此物件監視器上等待的所有執行...

Java基礎回顧Object類的方法重寫

a object類概述 類層次結構的根類 所有類都直接或者間接的繼承自該類 b 構造方法 public object 回想物件導向中為什麼說 子類的構造方法預設訪問的是父類的無參構造方法 public class test public class student public string tos...

Java 基礎之巧用Object類作為函式引數

看乙個小例子 public class base public class a extends base public class b extends base 可以看到每一字繼承base類的子類如果都需要showmessage這個函式,但是卻每個都重寫了一遍這個函式,無疑就是 冗餘 可以這樣改 p...