1. 程式人生 > 其它 >Java學習小記 day03——Object類

Java學習小記 day03——Object類

技術標籤:java

Object類(Object類是所有類的父類)
在這裡插入圖片描述

  1. Object類中的toString()方法
    在這裡插入圖片描述
    hashCode就是一個物件在記憶體中的地址
    在這裡插入圖片描述
    Integer.toHexString()將其轉換為十六進位制
    在這裡插入圖片描述
    重寫toString()方法就可以得到自己想要的輸出
    在這裡插入圖片描述
  2. 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(); } }

意義:使用克隆方法可大大減少重複的建立物件的程式碼 淺拷貝是指標的拷貝。兩個指標都指向同一個物件的地址
深拷貝是物件的拷貝,即在堆記憶體中建立一個新的物件

  1. finalize()方法,垃圾回收(系統自動)
    System.gc(); //手動呼叫系統中的垃圾回收器
    垃圾回收是針對堆記憶體的

  2. equals()方法,計算兩個物件的記憶體地址是否相同,相當於”==”
    該方法用於比較兩個物件,如果這兩個物件引用指向的是同一個物件,那麼返回 true,否則返回 false。
    一般 equals 和 == 是不一樣的,但是在 Object 中兩者是一樣的。子類一般都要重寫這個方法。