智漁課堂官方免費教程十八:Java常用類之Object類

Object類

所有引用類型的頂級父類,任何一個類都會直接或者間接的繼承它。
當使用class關鍵聲明一個類,而未使用extends繼承任何類時,默認繼承Object類的。
Object類中常用方法的源碼
/*
作用:獲得對象的hashCode值
在現階段可以簡單理解該方法獲得的就是對象在內存中的地址
*/
public native int hashCode();

/*
作用:比較兩個對象是否是同一個對象
從源碼可以看到,方法內部是使用雙等號==判斷的。
使用雙等號判斷兩個對象時,本質就是在比較兩個對象的hashCode值是否相等
*/
public boolean equals(Object obj) {
return (this == obj);
}

/*
作用:將對象轉換成一個字符串
getClass().getName():獲取類的全名(含包名)
Integer.toHexString(hashCode()):將hashCode()返回的int值轉換成十六進制
*/
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

實例:
package common_class;
/**
 * 演示Object類
 * @author 學霸聯盟 - 趙燦
 */
public class ObjectDemo {
	public static void main(String[] args) {
		//創建兩個Object類的對象
		Object obj1 = new Object();
		Object obj2 = new Object();
		//輸出obj1的hashCode值;輸出結果:1704856573
		System.out.println(obj1.hashCode());
		//輸出toString方法的返回值;輸出結果:java.lang.Object@659e0bfd
		System.out.println(obj1.toString());
		//輸出obj2十六進制的hashCode值;輸出結果:2a139a55
		System.out.println(Integer.toHexString(obj2.hashCode()));
		//和輸出obj2.toString()一樣;輸出結果:java.lang.Object@2a139a55
		System.out.println(obj2);
	}
}
輸出結果:
1704856573
java.lang.Object@659e0bfd
2a139a55
java.lang.Object@2a139a55

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章