今天是520,咱就先不寫異常類了,不吉利o(╥﹏╥)o。首先祝各位看到此篇文章的和沒看到這篇文章的小夥伴們節日愉快。有對象的幸福美滿,沒對象的馬上脫單。咱們也應應景,來個Object。插一句題外話,學習使人進步,學習使人快樂。如果還沒有對象的話,小夥伴們不妨通過學習來充實自己,讓自己早日月薪過萬,迎娶白富美,嫁給高富帥,走上人生巔峰。
好了,言歸正傳,我們回到java世界。今天我要介紹的這個類很應景,叫做「Object」。從這個單詞來看,「object」翻譯為中文就是對象的意思。
那麼這個類說做什麼的呢?這個類在java中有着很特殊的地位,因為它是java中所有類的父類。當一個java類沒有顯式的繼承一個父類的時候,就會自動繼承Object類。
讀到這裡的時候,也許有小夥伴會比較好奇,這個Object類有啥用呀?
別着急,且聽我娓娓道來。
作為所有java類的父類,Object類會自動被繼承,所以不需要導包。理所當然的,它位於「java.lang」包下。
由於java中的繼承會導致子類獲得父類的公有的屬性與方法,並且Object是所有類的父類,這兩個條件限制之下,Object的作用也就呼之欲出了:描述所有類的共同特性,定義所有類的公有方法,或者說對所有類的方法進行一個統一的規範。
我們來看看Object類的方法:
大家看,m表示「method」,也就是「方法」。在這些方法旁邊有一些小小的標識符。有的是一把打開的鎖,代表的是這個方法是開放給所有場景的,任何對象都可以調用,這類方法使用public修飾符修飾,子類繼承時會繼承這類方法。有的是一把鑰匙,代表在同一包下可以調用的方法,使用protected修飾符修飾,會繼承給子類。還有一種使用一把閉合的鎖,這類方法是私有的,意思是只有Object類裡面才能夠調用該方法,使用private修飾符修飾,不會繼承到子類。
我們簡單介紹幾個比較常見的方法。
01getClass方法
該方法用於獲取到該類的運行時對象,說通俗點,就是程序運行的過程中調用這個方法的類的對象,有時也叫做字節碼對象。如圖,我們new了一個Test類的對象。該類會自動繼承Object類的getClass方法。我們通過這個方法獲取到Test對象的運行時對象,調用該運行時對象的getName方法即可獲得對象的全類名。
這裡的知識點涉及反射,暫時略過。02hashCode方法
該方法返回一個int值。該方法具有如下特性:當對象發生任何變化時,hashCode都會發生變化。利用這個函數,我們能夠做到監控頁面請求發送的數據是否被惡意篡改。
系統自帶的hashCode方法也可以自己重寫該方法:
03equals方法
該方法用於比較兩個對象是否相等。但是一般情況下,我們都會通過方法重寫自定義該方法,以實現我們自己的對象作比較的邏輯。該方法返回一個布爾值:
04toString方法
該方法用於將對象轉換為字符串。同上個方法一樣,我們也經常自定義該方法。
使用自定義的toString方法能夠使用我們自己定義的格式更優美的打印出對象的屬性以及屬性值。
此外,Object還提供了許多其他的方法供它的子類來繼承使用。比如clone方法,用於進行對象的克隆拷貝,從而得到一個屬性值一模一樣的對象。wait方法用來讓當前線程等待。notify與notifyAll方法則是用於喚醒等待的線程。finalize方法用於垃圾回收器GC確認一個對象已經沒有被調用的可能之後,即將回收對象的內存的時候就會調用這個方法。
以上就是本章節的全部內容了。你get到了嗎
評論列表
我最近了解了一下,是我朋友給我推薦的,很靠譜,推薦大家情感有問題的可以嘗試一下
如果發信息不回,怎麼辦?
老師,可以諮詢下嗎?
發了正能量的信息了 還是不回怎麼辦呢?