java_object的簡單使用詳解
就我們所知道的,java中有子類和父類,子類由于繼承父類而形成,那么父類還有沒有父類呢?答案是有了,父類的父類就是object類,一切父類都繼承了它,那么根據(jù)繼承的屬性,每一個子類都有一個object類,然而,我們不是蒙目地去繼承它,繼承它是有目的的,我們要使用里面定義的方法,object里面定義了很多方法,詳情參考API幫助文檔,下面我介紹object里面兩種方法,繼承而來的方法往往是需要我們重寫的。
第一、比如里面的比較方法,用來比較兩個對象的地址是否相等,實際比較地址是哈希地址,而這開發(fā)中是往往用不到的,我們更多的用到的是比較對象里面的內(nèi)容,比如數(shù)據(jù)成員是否相同,由于是繼承了object,我們可以將它重寫,把原定object的方法覆蓋掉,一般都這樣做,下面,看具體代碼。其中還涉及到向上轉(zhuǎn)型,向下轉(zhuǎn)型的知識,具體看我以前的播客。還有tostring()方法是返回類名+哈希值
/* Object:是所有對象的直接后者間接父類,傳說中的上帝。 該類中定義的肯定是所有對象都具備的功能。 Object類中已經(jīng)提供了對對象是否相同的比較方法。 如果自定義類中也有比較相同的功能,沒有必要重新定義。 只要沿襲父類中的功能,建立自己特有比較內(nèi)容即可。這就是覆蓋。 */ 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);//輸出語句打印對象時,會自動調(diào)用對象的toString方法。打印對象的字符串表現(xiàn)形式。 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的簡單使用詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
java 出現(xiàn)Zipexception 異常的解決辦法
這篇文章主要介紹了java 出現(xiàn)Zipexception 異常的解決辦法的相關(guān)資料,出現(xiàn) java.util.zip.ZipException: error in opening zip file 異常的原因及解決方法,需要的朋友可以參考下2017-08-08解決idea報錯 Connot resolve column 的問題
這篇文章主要介紹了解決idea報錯 Connot resolve column 的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-02-02