您好,登錄后才能下訂單哦!
package java.lang;
public class Object {
public Object() { / compiled code / }
private static native void registerNatives();
public final native java.lang.Class<?> getClass();
public native int hashCode();
public boolean equals(java.lang.Object o) { / compiled code / }
protected native java.lang.Object clone() throws java.lang.CloneNotSupportedException;
public java.lang.String toString() { / compiled code / }
public final native void notify();
public final native void notifyAll();
public final native void wait(long l) throws java.lang.InterruptedException;
public final void wait(long l, int i) throws java.lang.InterruptedException { / compiled code / }
public final void wait() throws java.lang.InterruptedException { / compiled code / }
protected void finalize() throws java.lang.Throwable { / compiled code / }
}
Object是java所有類(lèi)的終極類(lèi),我們常見(jiàn)的自定義class 但是并沒(méi)有繼承Object(Java編譯器自動(dòng)引入,如果手動(dòng)繼承Object,也是沒(méi)有問(wèn)題的,java單繼承 有一定的局限)
public static class User {@Override
br/>@Override
return super.clone();}
@Override
br/>}
@Override
return super.hashCode();
}
}
Object類(lèi)? 約12個(gè)方法,下面一一解釋這些方法的作用1. getClass()
public final Class<?> getClass() {
return shadow$klass;
}
返回此Object的運(yùn)行時(shí)類(lèi)
實(shí)際結(jié)果的類(lèi)型是Class<? extends |X|>其中|X|是靜態(tài)類(lèi)型上其表達(dá)的擦除getClass被調(diào)用。 例如,在此代碼片段中不需要轉(zhuǎn)換:
Number n = 0;?
Class<? extends Number> c = n.getClass();
Clone()
protected Object clone() throws CloneNotSupportedException {
if (!(this instanceof Cloneable)) {
throw new CloneNotSupportedException("Class " + getClass().getName() +
" doesn't implement Cloneable");
}
return internalClone();
}
克隆方法:創(chuàng)建并返回此對(duì)象的副本;
對(duì)于任何對(duì)象x x.clone()!=x
而且x.clone().getClass()==x.getClass() 成立 雖然對(duì)象的基類(lèi)都支持clone 但是object本身并未實(shí)現(xiàn)cloneable,所以自定義的類(lèi)需要實(shí)現(xiàn)cloneable接口,否則將拋出異常
toString()
返回對(duì)象的字符串表示形式,一般說(shuō)來(lái),這個(gè)方法返回一個(gè)固定的模版public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
這個(gè)在實(shí)際開(kāi)發(fā)中,并不好體現(xiàn),所以各大編譯器都支持 重新生成toString(),如:
public static class User {
private String name;
private int age;
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。