老師說每個類預設繼承Object類,而且建議每個類都重寫toSring方法,既然我是用自己建立的類

時間 2021-09-09 12:17:06

1樓:小石頭

萬物基於Object

所以Object有的方法, 所有類都有。

潛意識的可以呼叫ToString, 如果沒有這個你需要判斷當前例項物件有沒有ToString方法。

其次。ToString 在打日誌時候還是要呼叫的。

2樓:王絮飛

建議重寫是因為不重寫的話,這個方法返回的就是一串雜湊值,你在寫業務的時候,不一定什麼時候就會隱式用到這個方法,比如日誌不重寫,出問題翻日誌的時候,找到出錯的地方,發現這條資料有問題導致的,但是看不到是哪條資料。

而重寫了,日誌裡就會輸出出來。

3樓:

這個問題,你用反證法想想,

如果 Object 沒有 toString 方法,那要把某個物件列印到 log 的時候,如果這個物件恰好還是乙個泛型,那怎麼知道這個物件有沒有 toString 方法,能不能調 toString 去做列印

Object 是所有類的父類,只要 Object 有 toString 方法,那所有類都可以調 toString 方法,不用再考慮上述問題。

4樓:Ash

Object類有這個方法是因為這個方法放在這裡好有用處,為它的匯出類(也就是所有的類)提供乙個共有的介面。這樣就可以利用多型機制輕鬆呼叫這個方法的toString()。

這個就是為什麼要有toString()方法的原因,當自己編寫自己的類時要重寫(覆蓋)這個方法是為了在除錯時有更好的可讀性

而且Object方法本身的toString方法也是比較有用的,它可以指明這個類的記憶體位址,在一些時候可以分辨兩個表現得一樣的物件(我覺得用引用比較好)究竟是同乙個物件還是不同的

5樓:布丁不八

吾有一言,望君記取。

介面比object更重要,對object,需要做的是學習了之後、忘掉它(當然是考試以後再忘掉啦)。

少用抽象類,多用介面,介面定義行為,類實現行為。

在真實的程式設計工作中,你沒有什麼接觸object的機會,大量的工作是提供符合框架要求的實現類,而這些實現類的定義,大多是基於介面的。

6樓:BadDeceive

object自帶的tostring會print出當前物件的hashcode。但有的時候你不想print出hashcode,這時你就要重寫自定義類的tostring方法

7樓:黃亮anthony

有個答案中有這麼一句話:「除非你自定義的類的物件在概念上和文字的概念很像」,正好從反面回答了這個問題。

設計時想想乙個物件在文字概念上如何表達,有助於設計職責單一,功能內聚,外部耦合少的物件。

先看幾個好的設計toString:socket,可以簡單輸出5元組。Windows的視窗,用視窗標題。簡潔有效。

不好的設計:

一句話都說不清,說明職責不夠單一

無法用簡單的標識區分不同的物件,說明功能不內聚

無法區分不同狀態的物件,說明外部耦合太多,物件自己的狀態無法決定自己的行為。

8樓:

「建議每個類都重寫toSring方法」你老師給出的理由是什麼?完全沒有必要。

當我想Object為什麼要提供toString方法的時候,去看了下原始碼,嘿,注釋中還真有這麼一句「It is recommended that all subclasses override this method.」你老師應該就是根據這個說的把。但是前面還有一句寫的是「...

that is easy for a person to read.」意思是便於人來閱讀,但是我根本就沒有閱讀的需要,我寫這個幹嘛。

我個人認為Object提供toString()方法的理由,可以直接列印,可以直接用加號「+」連線。

9樓:Aetherus

Object 有 toString 是為了保證所有的物件都能被轉換成字串,至於轉成啥樣不管。

每個自定義類都要重寫toString?那是當年沒有其他debug手段,全靠 System.out.

println 的時候的陳年八股的做法了。那時候如果不重寫 toString 列印出來的只有型別和乙個引用number,除錯起來不方便。現在有各種高階IDE,打斷點後什麼看不到?

沒必要再重寫 toString 了。我甚至要在這裡強烈建議不要重寫toString,除非你自定義的類的物件在概念上和文字的概念很像,比如像 StringBuilder 這樣的,或者應該被序列化成字串後才能跨系統使用的,比如 JSONObject 這樣的。

最想對老師說的話?

顧。年年拿著工資,混補課費混日子,你不羞恥嗎?哦,對,不羞恥,畢竟你的教師資格也是靠走後門買進來的,臉皮厚慣了,上課我們除了自己做題就是自己自習,畢竟教學比不上洗澡跑步吃早飯玩手機,一天五六節數學課外加晚自習,你就玩了這麼長時間的手機,天天掉眼裡陰陽怪氣更是讓人見怪不怪,同學們紛紛表示,驚了,6眼淚...

老師說你們每個人都有乙份檔案究竟是什麼?

Arthur Wang 檔案代表你的過去,決定你的未來 舉個例子,裡面可能有從小學到大學所有老師對你的評價,有學校對你的獎懲記錄,有社會機關對與你的來往證明等等。當然,只是可能,也可能只有一張表,啥也沒有。如果你自己開啟後,把老師說的 該生不思進取調皮搗蛋 換成 勤奮學習樂於助人 那麼下乙個接受檔案...

對老師說謊被揭穿?

班主任讓我家孩子參加學校的乙個表演,我嫌耽誤孩子學習就給推了,老師反覆勸,說什麼鍛鍊孩子,開眼界什麼的,我實在不想讓孩子參加,就說周五下午我們要去醫院,給孩子做窩溝封閉。都排上號了,不好不去。但是周五下午我們一家去北京玩了 然後,說出來難以置信的是,在北京南站排隊出站的時候,排我們家旁邊的居然是坐我...