[OCAJP][OCPJP]靜態變數與物件變數3


Given:

What is the result?

A.

ns = 50 s = 125
ns = 125 s = 125
ns = 100 s = 125

B.

ns = 50 s = 125
ns = 125 s = 125
ns = 0 s = 125

C.

ns = 50 s = 50
ns = 125 s = 125
ns = 100 s = 100

D.

ns = 50 s = 50
ns = 125 s = 125
ns = 0 s = 125

題解

ns是物件變數,s是類別變數,s在物件的變化會影響到其他的物件。在第6行的Alpha建構子中,會使用比原先的s更大的值來初始化ns和s。main方法並非從小到大將數值傳給Alpha的建構子並實體化出不同的物件,第22行傳入的125是最大值,之後第23行傳入建構子的100將會使得第7行的if條件式不成立,而沒有在建構子中被初始化的ns變數數值預設是0。

因此答案是選項B。

關於作者

Magic Len

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

相關文章