[HackerRank]這個方法您可以存取嗎?(Java Can You Access?)

題目描述

您將會得到一個Solution類別,在Solution類別有個內部類別Inner,Inner類別中也還有個內部類別Private。Solution類別的main方法會從標準輸入中讀取一個整數num。Private類別的powerof2方法會檢查傳入的數字是否為2的冪次。您必須要在Solution類別的main方法中呼叫Private類別的powerof2方法來判斷讀取到的整數是否為2的冪次。

原題網址

https://www.hackerrank.com/challenges/can-you-access

輸入格式

輸入一個整數num,範圍在1到230之間(包含1和230)。

輸出格式

請見範例。

範例輸入

8

範例輸出

8 is power of 2
An instance of class: Solution.Inner.Private has been created

解題概念

若要實體化出內部類別,需先區分內部類別屬於類別的內部類別還是物件的內部類別(看類別的宣告有無使用static關鍵字)。如果沒有使用static關鍵字,那就和一般的物件成員一樣,必須先將外部類別實體化出來之後,才可以使用到屬於物件成員的內部類別。舉例來說,若A類別中有物件類別B,類別B中又有物件類別C,若要在A的類別方法中實體化出類別C,則必須先實體化出A類別的物件,再用A類別的物件實體化出B類別的物件,再用B類別的物件實體化出C類別的物件。程式如下:

擁有內部物件類別的物件可以使用「.」來呼叫該物件的new運算子。這種用法比較不常見,但Java程式語言是可以用這樣的方式實體化出內部類別的內部類別物件的哦!

參考答案

關於作者

Magic Len

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

相關文章