Object類的使用 Object類 Object類中的方法可以在網上搜索得到 Object類是所有java類的父類 如果類在聲明中未使用extends關鍵字指明其父類,則預設父類為java.lang.Object類 Object類中的功能(屬性、方法)具有通用性。 屬性:無 方法:equals() ...
Object類的使用
Object類
Object類中的方法可以在網上搜索得到
-
Object類是所有java類的父類
-
如果類在聲明中未使用extends關鍵字指明其父類,則預設父類為java.lang.Object類
-
Object類中的功能(屬性、方法)具有通用性。
屬性:無
方法:equals() / toString() / getClass() / hashCode() /clone() / finalize() / wait() / notify() / notifyAll()
-
Object只有一個空參構造器
==和equals()的區別
1、 ==的使用:
-
可以使用在基本數據類型變數和引用數據類型變數中
-
如果比較的是基本數據類型的變數,比較的是兩個變數保存的數據是否相等(不一定要類型相同)
如果比較的是引用數據類型變數,比較的是兩個變數的地址值是否相同,即兩個引用是否指向同一個對象實體。
2、equals()的使用:
-
是一個方法,而非運算符
-
只能應用於引用數據類型
-
Object類中equals()定義:
pubulic boolean equals(Object obj){
return (this == obj)
}
//說明:Object類中定義的equals()和==作用是相同的,即兩個引用是否指向同一個地址
-
像String、Date、File、包裝類都重寫了equals()方法,即比較的是兩個對象的"實體內容"是否相同
-
通常情況下,我們自定義的類如果調用equals()方法,通常是比較對象的"實體內容"是否相同,因此需要對Object類的equals()方法進行重寫。【一些編譯器可以自動生成重寫的代碼】
Customer cust1 = new Customer("TOM",21);
Customer cust2 = new Customer("TOM",21);
String str1 = new String("aaa");
String str2 = new String("aaa");
System.out.println(cust1.equals(cust2));//flase
System.out.println(str1.equals(str2));//true
基本數據類型變數
- 在記憶體種存儲的是一個基本類型值。
- 可以在棧中直接分配記憶體
- 例如 int a=1; 變數a的值就是int值1;
引用數據類型變數
- 對應記憶體所存儲的值是一個引用,是對象的存儲地址。
- 對象的引用在棧中,對象實際存放在堆中。
- 例如 Circle circle = new Circle(9)【參數表示半徑】; 變數circle 的值保存的是一個引用,它指明這個Circle對象的內容存儲在記憶體的什麼位置。
toString()方法
- 當我們輸出一個對象的引用時就是調用當前對象的toString()
- Object類中toString()定義
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 像String、Date、File、包裝類都重寫了toString()方法,使得調用toSting()方法時,返回"實體內容"信息
- 自定義類也可以重寫toString()方法,當調用此方法時,返回對象的"實體內容"【一些編譯器可以自動生成重寫的代碼】