就我們所知道的,java中有子類和父類,子類由於繼承父類而形成,那麼父類還有沒有父類呢?答案是有了,父類的父類就是object類,一切父類都繼承了它,那麼根據繼承的屬性,每一個子類都有一個object類,然而,我們不是蒙目地去繼承它,繼承它是有目的的,我們要使用裡面定義的方法,object裡面定義了很多方法,詳情參考API幫助文檔,下面我介紹object裡面兩種方法,繼承而來的方法往往是需要我們重寫的。
第一、比如裡面的比較方法,用來比較兩個對象的地址是否相等,實際比較地址是哈希地址,而這開發中是往往用不到的,我們更多的用到的是比較對象裡面的內容,比如數據成員是否相同,由於是繼承了object,我們可以將它重寫,把原定object的方法覆蓋掉,一般都這樣做,下面,看具體代碼。其中還涉及到向上轉型,向下轉型的知識,具體看我以前的播客。還有tostring()方法是返回類名+哈希值
/*Object:是所有對象的直接後者間接父類,傳說中的上帝。該類中定義的肯定是所有對像都具備的功能。 Object類中已經提供了對對像是否相同的比較方法。如果自定義類中也有比較相同的功能,沒有必要重新定義。只要沿襲父類中的功能,建立自己特有比較內容即可。這就是覆蓋。 */class Demo //extends Object{ private int num; Demo(int num) { this.num = num; } public boolean equals(Object obj)//Object obj = new Demo(); { if(!(obj instanceof Demo)) return false; Demo d = (Demo)obj; return this.num == d.num; } /* public boolean compare(Demo d) { return this.num==d.num; } */ public String toString() { return "demo:"+num; }}class Person {}class ObjectDemo { public static void main(String[] args) { Demo d1 = new Demo(4); System.out.println(d1);//輸出語句打印對象時,會自動調用對象的toString方法。打印對象的字符串表現形式。 Demo d2 = new Demo(7); System.out.println(d2.toString()); //Demo d2 = new Demo(5); //Class c = d1.getClass();//// System.out.println(c.getName());// System.out.println(c.getName()+"@@"+Integer.toHexString(d1.hashCode()));// System.out.println(d1.toString()); //Person p = new Person(); ///System.out.println(d1.equals(p)); }}以上這篇java_object的簡單使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。