Java Gold合格へ向けて
黒本の第1章は『クラスとインタフェース』、これをさらに細分化すると下記の7つに分かれる(黒本より抜粋)。
- ネストしたクラス
- インナークラス
- staticインナークラス
- ローカルクラス
- 匿名クラス
- インタフェースとデフォルトメソッド
- Enum(列挙型)
とはいえ、ネストしたクラスの中に「インナークラス」「staticインナークラス」「ローカルクラス」「匿名クラス」の4つがあるという関係性のため、実際のところは下記の3種類と言った方が良いかもしれない。
- ネストしたクラス(インナークラス、staticインナークラス、ローカルクラス、匿名クラス)
- インタフェースとデフォルトメソッド
- Enum(列挙型)
ネストしたクラスの問題は、ネストとは「入れ子」という意味なので、classの中にclassがある形を見れば良いので見分けるのは簡単だ。要はそのclassの中のclassに「インナークラス」「staticインナークラス」「ローカルクラス」「匿名クラス」の4種類があり、それぞれにコンパイルの条件(主にインスタンスの生成方法やアクセス範囲など)が違う。それらを覚える必要がある問題のようだ。
インタフェースとデフォルトメソッドはJava Silverのインタフェースの内容を深掘りした内容になっている。そのため前提としてJava Silverの知識が求められているような印象を受けた。逆に言ってしまえば、そこを覚えていればインタフェースに実装することができるdefaultメソッドや、privateメソッドの使い方についても覚えるのは容易のように思う。
Enumは個人的には丸暗記する内容(業務で何回か使ったことがあったので、それほど苦労しないと思われる)。
まとめると、この第1章における鬼門はネストしたクラスで、瞬時に4種類あるネストしたクラスの内のどれをを見極めること、そしてそれぞれの違いを理解しておく。これがこの一週間ですべきことだと考えた。次の記事ではそこら辺をまとめていく。