SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング入門書ガイド

Java入門ブックガイド(オブジェクト指向編)
オブジェクト指向の基本

入門時に基本を固めることが肝要

川久保 智晴[著]

実務に耐えうる準備をするための項目比較

 下記の表1は、前述した書籍の1から6までを、オブジェクト指向プログラミングの基本を知る上で必要と考えた要素の比較表です。前編は「エラーの出にくい」という観点で要素を列挙しましたが、今回は「オブジェクト指向プログラミングを知る上で必須と考えられるもの」を列挙しています。すべての本の目次を洗い出しているわけではなく、オブジェクト指向を学ぶ際の勘所だけを列挙していることに注意してください(表の見方は表下部を参照)。

表1.Java入門書比較表(オブジェクト指向編)
評価項目 明解Java Java言語プログラミングレッスン やさしいJava わかりやすいJava
オーバーロード(メソッドの多重定義) ○ 260 下 △ 61 ○ 269 オ ○ 208
シグネチャ ○ 260 下 △(*9) 61 △(*10) - オ △(*10) -
フィールド・メソッドの修飾子 △(*11) 11 下 ○ 32 △(*11) -   × -
デフォルトコンストラクタ ○ 218 下 ○ 18 ○ 283 オ ○ 26
カプセル化(情報隠蔽) ○ 284 下 ○ 66 ○ 266 オ ○ 63
アクセサ(setter/getter) ○ 302 下 ○ 66 × - オ ○ 63
クラス型変数の代入 ○ 304 下 ○ 127 ○ 316   × -
クラスメソッドのアクセス制限 ○ 348   × - ○ 294   × -
静的インポート宣言 ○ 370 下 ○ 211 × -   × -
アクセス修飾子protected ○ 383 下 ○ 204 ○ 384 オ ○ 174
一意なパッケージ名 ○ 378 下 ○ 210 × - オ ○ 150
継承 ○ 388 下 ○ 50 ○ 336 オ ○ 150
継承クラスのコンストラクタでのsuper ○ 392 下 ○ 54 ○ 343 オ ○ 169
オーバーライド ○ 406 下 ○ 60 ○ 352 オ ○ 214
ポリモルフィズム ○ 406 下 ○ 62 △(*12) 271 オ ○ 232
アップキャスト(参照型の拡大変換) ○ 412   × - × - オ ○ 184
ダウンキャスト(参照型の縮小変換) ○ 41   × - × - オ ○ 189
instanceof演算子 ○ 413 下 ○ 63 ○ 386 オ ○ 193
@Overrideアノテーション ○ 414 下 ○ 61 × -   × -
継承されるものとされないもの ○ 417 下 △(*13) 64 × - オ ○ 161
オーバーライド時のメソッドのアクセス制限 ○ 418   × - × - オ ○ 216
宣言における修飾子の順序 ○ 419   × - × -   × -
抽象クラス ○ 426 下 ○ 68 ○ 380 オ ○ 252
インタフェース ○ 454 下 ○ 106 ○ 389 オ ○ 259
インタフェースの配列 × - 下 ○ 115 ○ 392   × -
ラッパクラス ○ 500 上 ○ 71 ○ 312 オ ○ 419
例外の分類と階層 ×(*14) - 下 ○ 91 ○ 440 オ ○ 280
チェック例外 ×(*14) - 下 ○ 92 × - オ ○ 280
非チェック例外 ×(*14) - 下 ○ 94 × - オ ○ 281
finallyブロック ×(*14) - 下 ○ 98 ○ 435 オ ○ 286
チェック例外が継承関係の時の記述順序 ×(*14) -   × - × - オ ○ 296
オーバーロード・オーバーライド時の例外 ×(*14) -   × - × - オ ○ 310
  • *9 仮引数の個数も同じであることが明記されていない。
  • *10 シグネチャという言葉が欲しい。
  • *11 一か所にまとめられていない。
  • *12 p359でも多態性(ポリモルフィズム)の説明があるが、これだけで理解するのは苦しい。
  • *13 インスタンス初期化子、静的初期化子、コンストラクタが継承されないことが明記されていない。
  • *14 p505の「おわりに」で「他の書籍で取り上げる」との記述あり。

表の見方

  1. 『改訂第2版 Java言語プログラミングレッスン』は上下巻に分かれており、どちらに記載されているかを「上」・「下」で、『わかりやすいJava』は入門編とオブジェクト指向編に分かれており、どちらに記載されているかを「入」・「オ」という表記で区別しています。
  2. 数字は○や△の場合、記載のあるページ数を示しています。
  3. ○、△、×とあるのは適切な説明があるかどうかを示しています。
    • 適切:○
    • 不十分:△
    • 説明自体がない:×

 なお、△や×に*(アスタリスク)が付いている番号は、表の後に注釈があるものです。

次のページ
市販の入門書で不足している説明

この記事は参考になりましたか?

プログラミング入門書ガイド連載記事一覧
この記事の著者

川久保 智晴(カワクボ トモハル)

haruプログラミング教室(https://haru-idea.jp/)主宰。COBOL、FORTRANで13年、Javaを中心としたWeb開発で11年。3つしか言語知らないのかというとそうでもなく、sed/awk、Perl、Python, PHP,  C#, JavaScriptなども一時期は業...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー