在學了object類前面的三個常用方法後,又遇到它的另外三個方法——
clone()
、finalize()
、getclass()
,這三個方法不經常使用,但因為在學習過程遇到了,就簡單的對它們的使用做乙個總結。
1.物件轉殖——clone()
方法
protected object clone() throws clonenotsupportedexception;
使用該方法可以轉殖乙個物件,即建立乙個物件的副本。要使類的物件能夠轉殖,該類必須實現cloneable介面。這個介面裡面沒有定義任何方法,屬於標識介面,即給類乙個特殊標籤。
1public
class student implements
cloneable210
@override
11public
boolean
equals(object o)
1215
@override
16public
string tostring()
1720
public
static
void main(string args) throws
clonenotsupportedexception
2133 }
這個例子使用了object類的五種方法,其中clone()方法宣告丟擲
clonenotsupportedexception
異常,程式在
main()
方法的宣告中丟擲了該異常。
2.getclass()方法
public final native class<?> getclass();
該方法,它會返回乙個你的物件所對應的乙個class的物件,這個返回來的物件儲存著你的原物件的類資訊,比如你的原物件的類名叫什麼,類裡有什麼方法,欄位等,和反射相關。
date date = newdate();
class
<?>cls = date.getclass();
//得到類的包名
3.物件終結——finalize()
方法
protected void finalize() throws throwable;
在物件被銷毀之前,垃圾**站允許物件呼叫該方法進行清理工作,清除在物件外被分配的資源。
1public
class student implements
cloneable28
public
static
void
main(string args)
916 }
輸出結果:
the object is destroyed
the object is destroyed
gc在**物件之前自動呼叫finalize()方法,而且需要顯示地呼叫垃圾**方法(system.gc()),並且需要有new出來的尚未被銷毀的匿名物件的存在,finalize()方法才一定會被呼叫。在某些情況下,finalize ()方法可能不會執行完成或可能根本不執行,jvm不保證此方法總被呼叫。
Object類及其常用方法簡介
object類是乙個特殊的類,是所有類的父類,如果乙個類沒有用extends明確指出繼承於某個類,它預設繼承object類。這裡主要總結object類中的三個常用方法 tostring equals hashcode 1.取得物件資訊的方法 tostring 該方法在列印物件時被呼叫,將物件資訊變為...
Object類及其常用方法簡介
object 類是乙個特殊的類,是所有類的父類,如果乙個類沒有用 extends 明確指出繼承於某個類,那麼它預設繼承 object 類。這裡主要總結 object 類中的三個常用方法 tostring equals hashcode 1.取得物件資訊的方法 tostring 該方法在列印物件時被呼...
Object類的方法
package day11 類 object 是類層次結構的根類。每個類都使用 object作為超類。所有物件 包括陣列 都實現這個類的方法。每個類都簡介或直接繼承自object類。object 類的方法 public int hashcode 返回該物件的雜湊碼值。雜湊值使根據雜湊演算法計算出來得...