なぜ,あなたはJavaでオブジェクト指向開発ができないのか
2004年12月2日紙版発売
アクロクエストテクノロジー株式会社 小森裕介 著
A5判/296ページ
定価2,398円(本体2,180円+税10%)
ISBN 4-7741-2222-X
書籍の概要
この本の概要
Javaプログラミング言語習得において,新人プログラマーの最初の障害は「オブジェクト指向の壁」です。本書は,Javaのソフトウェア開発を中心に事業を発展させてきたアクロクエストテクノロジー社の新人教育セミナーを加筆・書籍化したもので,大卒の新人に対して,ゼロからJava言語を教えてきた実績をフィードバックしています。単にプログラミングを「覚える」のではなく,その「考え方を理解」させ,さらに「手を動かしソースを書く」ことを基本とし,知らず知らずのうちにオブジェクト指向が身につくようになっていきます。
こんな方におすすめ
- オブジェクト指向開発の進め方がよくわからない方
- Javaを使えてはいるが、オブジェクト指向での開発に自信がない方
この書籍に関連する記事があります!
- オブジェクト指向の壁
- オブジェクト指向の本質は,コードの保守性を高めることにあります。
目次
Lesson 1 オブジェクト指向をなぜ難しいと感じるのか
- 「プログラムを作る」とはどういうことか
- プログラミングはなぜ難しいか
- あなたが「プログラミング」できない理由
- オブジェクト指向が生まれたわけ
- なぜオブジェクト指向で開発できないのか
Lesson 2 オブジェクト指向は本当に必要なのか
- 2.1 コンピュータにジャンケンをさせる
- どんなプログラムを作成するか
- プログラムの流れを考える
- 2.2 ジャンケンプログラムを作成する
- 2.3 ジャンケンプログラムを拡張する
- プログラムの改良はなぜ難しいか〜非オブジェクト指向の限界〜
Lesson 3 オブジェクト指向でのソフトウェア開発
- 3.1 現実世界でのジャンケンを分析する
- オブジェクト指向は難しくない!
- 非オブジェクト指向からオブジェクト指向へ
- 現実世界のジャンケンからオブジェクト指向の世界へ
- クラスとインスタンス
- クラスに対する「操作」という考え方
- オブジェクトの状態を管理するための方法(属性とカプセル化)
- 3.2 オブジェクト指向版ジャンケンプログラムの作成
- プレイヤークラスを作成する
- カプセル化の鍵となるアクセス修飾子
- オブジェクトが生まれたときの処理(コンストラクタ)
- 審判クラスを作成する
- オブジェクト指向版ジャンケンプログラムの完成
Lesson 4 オブジェクト指向でプログラムを拡張する
- 4.1 プレイヤーごとに手の出し方を変更する
- どうすれば手の出し方を変えられるか
- クラスの継承による差分プログラミング
- 村田さんも山田さんも同じプレイヤーとみなす
- 4.2 プレイヤークラスを継承してプログラムを作成する
Lesson 5 ソフトウェアの振る舞いを変更する
- 5.1 オブジェクトの振る舞いを規定する(インタフェース)
- ジャンケンの戦略を変更する
- オブジェクトの振る舞いを規定する
- CDプレイヤーに見るインタフェース
- 5.2 プレイヤーに戦略を授ける
- 戦略を使ってプレイヤーの振る舞いを変更する
- インタフェースを使ったJavaプログラミング
- 戦略の実装クラスを作成する
- 戦略を生成してプレイヤーへ渡す
- 5.3 さまざまな戦略を試す
- 新たな戦略を作成する
- さまざまな戦略に切り替える
Lesson 6 より複雑なソフトウェアの作成
- 6.1 オブジェクト指向による分析の手順(モデリング手順)
- 6.2 「ばば抜き」をモデリングする
- 仕様を決める
- クラスを抽出する
- クラス間の関連を洗い出す
- メッセージのやりとりを考える
- 各クラスの操作を洗い出す
- 各クラスの属性を洗い出す
- 操作の見落としを探す
- 6.3 ばば抜きプログラムの流れを考える
- プログラムの実行イメージを決める
- プログラムの流れを考える
- 6.4 ばば抜きプログラムを実装する
- どのクラスから作るか
- カードクラスの作成
- 手札クラスの作成
- テーブルクラスの作成
- プレイヤークラスの作成
- 進行役クラスの作成
- ばば抜きプログラムの世界を創る
Lesson 7 既存のソフトウェアの再利用
- 7.1 「七並べ」をモデリングする
- 「七並べ」プログラムの流れを考える
- 7.2 「ばば抜き」を拡張して「七並べ」を作成する
- 継承に潜む落とし穴
- 正しい継承関係,誤った継承関係
- 7.3 共通部分を分離する(汎化)
- 7.4 モデリング自体を共通化する(フレームワーク)
Lesson 8 再利用を考慮したソフトウェアの設計
- 8.1 トランプゲームに共通する要素を抽出する
- 問題領域を特定する
- フレームワークの境界を決める
- ゲームのルールをクラス化する
- ジョーカーをどう扱うか
- 8.2 フレームワークを実装する
- サブクラス化を強制するための手段(抽象クラス)
- カード・ジョーカークラスの作成
- 手札クラスの作成
- テーブルインタフェースの作成
- ルールインタフェースの作成
- プレイヤークラスの作成
- 進行役クラス
Lesson 9 フレームワークを利用したソフトウェア開発
- 9.1 必要なクラスを洗い出す
- 当初のモデリング結果の復習
- 必要なクラスの洗い出し
- 9.2 フレームワーク上に七並べを実装する
- FantanTableの作成
- FantanRuleの作成
- FantanMasterの作成
- FantanPlayerの作成
- 七並べプログラムの完成
- フレームワーク利用の効果
- フレームワーク利用版ばば抜きへの挑戦
- フレームワークをよりよくするために
Appendix
- A.1 模範解答
- 終わりに
この本に関連する書籍
-
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
「ソースがごちゃごちゃしていて,どこに何が書いてあるのか理解するまでがたいへん」「1つの修正のために,あっちもこっちも書きなおす必要がある」「ちょっとした変更...
-
かんたん UML入門[改訂2版]
本書は,「広く・正しく・新しく」をコンセプトに,UMLモデリングの基本をすべて学習できる内容となっています。また,イラストによる図解方式で概念をやさしく解説して...
-
『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか
『なぜあなたはJavaでオブジェクト指向開発できないのか』の著者である小森祐介氏の新刊です。Webアプリケーションの開発方法を,インターネットの仕組みの根本原理から...
-
豆蔵セミナーライブオンテキスト(3) Java・オブジェクト指向の壁を突破する 抽象化プログラミング入門
UMLでクラス図とシーケンス図が描ければ,Javaのコーディングがすいすいできます。 本書はその方法(マッピング技術)を丁寧に解説します。また,Javaのオブジェクトの...
-
本格学習Java入門−基本の習得からWebブラウザ作成まで−
本書は重要な説明だけを厳選し,やさしく解説しているため,内容の密度の濃さにもかからわず厚さが薄くコンパクトで,読みやすくなっています。豊富なソースプログラム...
-
Java完全マスターブック〜Swingからサーブレットまでの基礎学習〜
「Javaスタートブック」を学習した方,もしくはさらりとJavaの基本を学んだ方に動的なプログラムからサーブレットの入り口までの学習の方法を提供する一冊です。本書付...
-
Javaスタートブック〜基礎からしっかり徹底学習〜
Javaのしくみを図解で学習できる,いままでにない独習用テキストです。付属CD-ROMに収録の穴埋め方式のサンプルプログラムで,集中して学習することができます。プログ...