Given:



What is the result?

A.

myStr: 9009, myNum: 9009

B.

myStr: 7007, myNum: 7007

C.

myStr: 7007, myNum: 9009

D. Compilation fails

題解

程式第8行的「myStr」變數會遮蔽(shadow)掉第3行同名的「myStr」物件變數,作用範圍只在第8~9行的程式區塊內。在第9行會將字串「9007」轉成整數,並把轉好的整數數值儲存在第6行宣告的myNum變數中,這部份是沒問題的。在程式執行到第12行之後,「myStr」所指的是第3行的「myStr」物件變數,所以此時「myStr」存的是字串「7007」,而「myNum」存的是整數「9009」。