java基本之Object類。本站提示廣大學習愛好者:(java基本之Object類)文章只能為提供參考,不一定能成為您想要的結果。以下是java基本之Object類正文
Object 類位於 java.lang 包中,是一切 Java 類的先人,Java 中的每一個類都由它擴大而來。
界說Java類時假如沒有顯示的指明父類,那末就默許繼續了 Object 類。例如:
public class Demo{ // ... }
現實上是上面代碼的簡寫情勢:
public class Demo extends Object{ // ... }
在Java中,只要根本類型不是對象,例如數值、字符和布爾型的值都不是對象,一切的數組類型,不論是對象數組照樣根本類型數組都是繼續自 Object 類。
Object 類界說了一些有效的辦法,因為是根類,這些辦法在其他類中都存在,普通是停止了重載或籠罩,完成了各自的詳細功效。
equals() 辦法
Object 類中的 equals() 辦法用來檢測一個對象能否等價於別的一個對象,語法為:
public boolean equals(Object obj)
例如:
obj1.equals(obj2);
在Java中,數據等價的根本寄義是指兩個數據的值相等。在經由過程 equals() 和“==”停止比擬的時刻,援用類型數據比擬的是援用,即內存地址,根本數據類型比擬的是值。
留意:
•equals()辦法只能比擬援用類型,“==”可以比擬援用類型及根本類型。
•當用 equals() 辦法停止比擬時,對類 File、String、Date 及包裝類來講,是比擬類型及內容而不斟酌援用的能否是統一個實例。
•用“==”停止比擬時,符號雙方的數據類型必需分歧(可主動轉換的數據類型除外),不然編譯失足,而用 equals 辦法比擬的兩個數據只需都是援用類型便可。
hashCode() 辦法
散列碼(hashCode)是依照必定的算法由對象獲得的一個數值,散列碼沒有紀律。假如 x 和 y 是分歧的對象,x.hashCode() 與 y.hashCode() 根本上不會雷同。
hashCode() 辦法重要用來在聚集中完成疾速查找等操作,也能夠用於對象的比擬。
在 Java 中,對 hashCode 的劃定以下:
•在統一個運用法式履行時代,對統一個對象挪用 hashCode(),必需前往雷同的整數成果——條件是 equals() 所比擬的信息都不曾被修改過。至於統一個運用法式在分歧履行期所得的挪用成果,無需分歧。
•假如兩個對象被 equals() 辦法視為相等,那末對這兩個對象挪用 hashCode() 必需取得雷同的整數成果。
•假如兩個對象被 equals() 辦法視為不相等,那末對這兩個對象挪用 hashCode() 不用發生分歧的整數成果。但是法式員應當認識到,對分歧對象發生分歧的整數成果,有能夠晉升hashTable(前面會學到,聚集框架中的一個類)的效力。
簡略地說:假如兩個對象雷同,那末它們的 hashCode 值必定要雷同;假如兩個對象的 hashCode 值雷同,它們其實不必定雷同。在 Java 標准外面劃定,普通是籠罩 equals() 辦法應當連帶籠罩 hashCode() 辦法。
toString() 辦法
toString() 辦法是 Object 類中界說的另外一個主要辦法,是對象的字符串表示情勢,語法為:
public String toString()
前往值是 String 類型,用於描寫以後對象的有關信息。Object 類中完成的 toString() 辦法是前往以後對象的類型和內存地址信息,但在一些子類(如 String、Date 等)中停止了 重寫,也能夠依據須要在用戶自界說類型中重寫 toString() 辦法,以前往更實用的信息。
除顯式挪用對象的 toString() 辦法外,在停止 String 與其它類型數據的銜接操作時,會主動挪用 toString() 辦法。
以上幾種辦法,在Java中是常常用到的,這裡僅作簡略引見,讓年夜家對Object類和其他類有所懂得,具體解釋請參考 Java API 文檔。
以上所述就是本文的全體內容了,願望年夜家可以或許愛好