[OCAJP]字串連接─「+」運算子


Given the definitions of the MyString class and the Test class:

What is the result?

A.

Hello Java SE 8
Hello Java SE 8

B.

Hello java.lang.StringBuilder@<<hashcode1>>
Hello p1.MyString@<<hashcode2>>

C.

Hello Java SE 8
Hello p1.MyString@<<hashcode>>

D.

Compilation fails at the Test class.

題解

運算子「+」若其中一個運算元為字串,那麼它將會做字串連接,否則為加法運算。任何的物件,都擁有「toString()」方法,可以轉成字串。預設的「toString()」方法於Object類別中,程式實作如下:

由於MyString類別並未覆寫Object的「toString()」方法,因此會直接使用原本的程式實作。

所以這個題目的實際輸出為:

Hello Java SE 8
Hello p1.MyString@15db9742

「15db9742」為雜湊值,在不同環境下可能有不一樣的結果。

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章