[OCPJP]區域內部類別

Given the definition of the Vehicle class:

and this code fragment:

What is the result?

A.

Velocity with new speed 1 kmph

B. A compilation error occurs at line n1.
C. A compilation error occurs at line n2.
D. A compilation error occurs at line n3.

題解

Java 8之後的版本,允許方法內的區域內部類別(local inner class),使用方法內的區域變數而不一定要是常數,但僅能取得變數數值,無法更改變數數值。

在這個題目中,Vehicle類別和其方法內的區域內部類別Car,都可以正常的編譯。

程式實體化出Vehicle物件之後,會透過建構子將distance物件欄位設為100。接著使用Vehicle物件的increSpeed方法,呼叫其Car區域內部類別物件中的speed方法,設定value變數的值為distance欄位的值100,再除上傳入increSpeed方法的參數值60。由於變數型態均為整數,因此進行除法運算時,會自動捨棄掉小數點的部份,value變數的值會被重新指派為1。程式第17行,將value的值輸出。

關於作者

Magic Len

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

相關文章