Object類所有類的爸爸

今天開始進入一個全新的階段,接下來的這一段時間也是java的知識,等到java的知識分享之後就是mysql的知識了,堅持學習,天天都會有所收穫。

Object類所有類的爸爸

今天仍然是講的是一些類,這些類是比較常見的以後也是會比較常用的。

Object類

概述

java.lang.Object 類是Java語言中的根類,即所有類的父類。它中描述的所有方法子類都可以使用。在對象實例化的時候,最終找的父類就是Object。

如果一個類沒有特別指定父類, 那麼默認則繼承自Object類

Object類所有類的爸爸

toString方法

public String toString() :返回該對象的字符串表示。

toString方法返回該對象的字符串表示,其實該字符串內容就是對象的類型+@+內存地址值。

由於toString方法返回的結果是內存地址,而在開發中,經常需要按照對象的屬性得到相應的字符串表現形式,因此也需要重寫它。

Object類所有類的爸爸

Object類所有類的爸爸

在IntelliJ IDEA中,可以點擊Code 菜單中的Generate... ,也可以使用快捷鍵alt+insert ,點擊toString() 選項。選擇需要包含的成員變量並確定。如下圖所示:

Object類所有類的爸爸

在我們直接使用輸出語句輸出對象名的時候,其實通過該對象調用了其toString()方法。

equals方法

public boolean equals(Object obj) :指示其他某個對象是否與此對象“相等”。
Object類所有類的爸爸

Object類所有類的爸爸

Object類所有類的爸爸

Object類所有類的爸爸

這段代碼充分考慮了對象為空、類型一致等問題,但方法內容並不唯一。大多數IDE都可以自動生成equals方法的代碼內容。在IntelliJ IDEA中,可以使用Code 菜單中的Generate… 選項,也可以使用快捷鍵alt+insert ,並選擇equals() and hashCode() 進行自動代碼生成。如下圖所示:

Object類所有類的爸爸

Object類所有類的爸爸

Object類所有類的爸爸

Objects類

在剛才IDEA自動重寫equals代碼中,使用到了java.util.Objects 類,那麼這個類是什麼呢?

在JDK7添加了一個Objects工具類,它提供了一些方法來操作對象,它由一些靜態的實用方法組成,這些方法是null-save(空指針安全的)或null-tolerant(容忍空指針的),用於計算對象的hashcode、返回對象的字符串表示形式、比較兩個對象。

在比較兩個對象的時候,Object的equals方法容易拋出空指針異常,而Objects類中的equals方法就優化了這個問題。方法如下:

public static boolean equals(Object a, Object b) :判斷兩個對象是否相等。
Object類所有類的爸爸


分享到:


相關文章: