1. 程式人生 > >JAVA所有類的父類,鼻祖Object類原始碼

JAVA所有類的父類,鼻祖Object類原始碼

package java.lang;

public class Object {

    private static native void registerNatives();               //呼叫非java程式碼寫的方法
    static {
        registerNatives();
    }

        public final native Class<?> getClass();           //呼叫非java程式碼寫的方法

        public native int hashCode();              //呼叫非java程式碼寫的方法

       public boolean equals(Object obj) {
         
        return (this == obj);        //這個就是我們熟悉的比較兩個物件是否相等的方法。一般都會被子類重寫
    }

   
    protected native Object clone() throws CloneNotSupportedException;       //呼叫非java程式碼寫的方法

    
    public String toString() {

        return getClass().getName() + "@" + Integer.toHexString(hashCode());     //這個就是toString方法。
    }

        public final native void notify();                //呼叫非java程式碼寫的方法

        public final native void notifyAll();          //呼叫非java程式碼寫的方法

       public final native void wait(long timeout) throws InterruptedException;         //呼叫非java程式碼寫的方法

       public final void wait(long timeout, int nanos) throws InterruptedException {
        if (timeout < 0) {
            throw new IllegalArgumentException("timeout value is negative");
        }

        if (nanos < 0 || nanos > 999999) {
            throw new IllegalArgumentException(
     "nanosecond timeout value out of range");
        }

if (nanos >= 500000 || (nanos != 0 && timeout == 0)) {
     timeout++;
}

wait(timeout);
    }

        public final void wait() throws InterruptedException {

        wait(0);
    }

       protected void finalize() throws Throwable { }
}