首頁 > 軟體

520節日沒物件怎麼辦?快來Java中new一個吧

2021-05-21 09:00:13

今天是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到了嗎


IT145.com E-mail:sddin#qq.com