Javaのように仕様が巨大で、生まれながらにオブジェクト指向の言語では、初心者は本質的な部分と付加的な部分の区別が困難で、無駄な努力を重ねがちである。
本書は、そんなJavaの設計思想や「なぜ?」の部分を解きほぐしてくれるものです。著者の独特の語り口「なぜ〜ではだめなんだ?」など、新鮮ながらわかりやすい本です。Javaクラス設計の「なぜ?」を深くまで知りたい方におすすめします。
対象読者
Javaの基本文法をマスターした方か、少なくともクラスとインターフェースが大体どんなものかを知っているレベルが好ましいと思いました。クラスとインターフェースの違いについては、本書でも解説されているので、完全にわかる必要はありません。Java入門者が読む本としては、少し抽象的過ぎるかなと思います。
本書で解説されているトピックはこれらがあります。
- プログラミングの歴史 オブジェクトへの道のり
- Javaの基本性質 オブジェクトとその立場
- Javaの基本性質2 クラスとその社会
- Javaの基本性質 ライブラリと言語仕様の接点
- I/Oの仮想化 何もかもストリーム
- データ構造 Collection系とMap系
- ネットワーキング ソケットとURLに二極化
- Swing GUIによるアプリケーション構築 JFrameの上にお絵かき
- 伏魔殿 java.lan
この中でも、僕が特におすすめしたいのが
- Javaの基本性質 クラスとその社会
- I/Oの仮想化 何もかもストリーム
- データ構造 Collection系とMap系
の3つです。
「なぜinterfaceが必要なのか?」「抽象クラスの使い道ってなんなのさ?」といった疑問に答えてくれます。CollectionとMapの違いを理解できれば、プログラミング技能が2倍にアップすると思います。データ構造は、プログラミングの基礎知識ですからね。
特徴
独特の語り口調と、鋭い突込みが本書のうりです。入門書や学習書とは一味違った視点からJavaの言語仕様に触れています。完全な入門者向けの本とは言えませんが、ある程度Javaを理解できた人が読むと、目からウロコでしょう。技術書というよりは読み物として楽しめる逸品だと思います。
参考
「なぜ?」の部分に解説を絞った本は、なかなか希少価値が高いと思います。そんな中でも、おすすめなのがこれです。
- もっとJavaの原則や定石を中心に学びたい人にはこれ!