Java學習小記 day03——Object類
阿新 • • 發佈:2021-01-13
技術標籤:java
Object類(Object類是所有類的父類)
- Object類中的toString()方法
hashCode就是一個物件在記憶體中的地址
Integer.toHexString()將其轉換為十六進位制
重寫toString()方法就可以得到自己想要的輸出
- clone()方法
返回一個要克隆物件的副本,
克隆後的物件型別與被克隆物件的型別相同
object類中
(protected表示該方法只能被其子類呼叫)
(native表示該方法不是在該檔案中實現,而是在用其他語言(如C和C++)實現的檔案中)
用法:只需要在需要clone的物件上實現(implements)Cloneable介面,然後再在類中加上clone方法,在方法中只需要呼叫super.clone(),根據自己的需要實現即可
public static void main(String[] args) throws CloneNotSupportedException {
ObjectTest obj1 = new ObjectTest();
obj1.name = "zhangsan";
obj1.age = 18;
//使用System.out.println列印一個物件時會自動呼叫該物件的toString()方法
//該物件的toString方法繼承了其父類即Object類的toString()方法,可重寫
System.out.println(obj1.hashCode ());
System.out.println(obj1.name+":"+obj1.age);
ObjectTest obj2 = obj1.clone();
System.out.println(obj2.hashCode());
System.out.println(obj2.name+":"+obj2.age);
}
@Override
public ObjectTest clone() throws CloneNotSupportedException {
// TODO Auto-generated method stub
return (ObjectTest)super.clone();
}
}
意義:使用克隆方法可大大減少重複的建立物件的程式碼 淺拷貝是指標的拷貝。兩個指標都指向同一個物件的地址
深拷貝是物件的拷貝,即在堆記憶體中建立一個新的物件
-
finalize()方法,垃圾回收(系統自動)
System.gc(); //手動呼叫系統中的垃圾回收器
垃圾回收是針對堆記憶體的 -
equals()方法,計算兩個物件的記憶體地址是否相同,相當於”==”
該方法用於比較兩個物件,如果這兩個物件引用指向的是同一個物件,那麼返回 true,否則返回 false。
一般 equals 和 == 是不一樣的,但是在 Object 中兩者是一樣的。子類一般都要重寫這個方法。