私自身は他の本で、多少基礎の勉強をしましたので、この本の下巻のみ買いました。
(勿論Javaの基礎がまだ終わってない人は上巻から買うべきです)
第一印象として、丁寧な文章から、作者(結城氏)の人柄が感じられると思いました。
カラー印刷はカバーのみですが、それもシンプルでよいと思います。
しかしこの本には賛否両論があるようで、他の人のレビューの中には
「分かりにくい」という意見も散見されます。
私個人は、本書はひとつひとつの説明も、全体としての構成もよく考え抜かれていると思います。
それなのに「分かりにくい」という意見が出るのは、Java/オブジェクト指向の仕様そのものに原因があります。
つまり、抽象概念が多く、非常に多機能で、しかも大規模なプログラムや
何年もかけてバージョンアップを繰り返すような場面でこそ本領発揮する仕様です。
本書を含め入門書レベルで、いきなり、そういう大規模プログラミングは紹介できません。
そのため入門書レベルではオブジェクト指向のありがたみが実感できないのは自然な事で、
「なぜ?だから何?そんなの単なる二度手間じゃないの?」と思う方が自然です。
この「オブジェクト指向の壁」を突破するには、最初は根性だけで、とにかく一度通読し
その上でオブジェクト指向とは何か?抽象メソッドに存在価値はあるのか?等等、
「なぜ?だから何?」を考える必要があります。
本書は重要事項の説明も綺麗にまとめてありますし、
「なぜ?だから何?」にも複数箇所で答えが書いてあります。
複数回読み、複数回コードを打たないとマスターの難しい本ですが
そうするだけの価値はあります。