投稿元:
レビューを見る
オブジェクト指向、特に継承・カプセル化の概念が
良く分かっていなかったので手に取った本。
実に分かりやすかった。
クラス図、シーケンス図についても触れているので、
UMLを知らない人でもスッと入ってきます。
実践で上手く使えるかどうかは分からないが、
直近で行っているリファクタリングを通して、
改めて理解度を測りたい。
ただ、JavaではなくPythonでのクラスなので、
違いを把握しないといけないとは思いますが。
投稿元:
レビューを見る
自分には早かったのかそれとも読み込みが浅いのか。
面白いようには分からなかった。でも分かりやすいのはよい事だ。
投稿元:
レビューを見る
オブジェクト指向が本当に分かりやすく書いてある。
まず、その概念を実際の現実的な例を使って説明し、そのご、それを再現する文法を紹介した後、その文法を利用した簡単なプログラム例を乗せ、その後に、最初に紹介した実際の例での事例をプログラムとして組んでいる。
そのため、1つの事柄が様々な次元で説明されとても分かりやすくなっている!
投稿元:
レビューを見る
著者によると、「オブジェクト指向」と「UML」と「Java」は同時に取り組んだ方が理解が深まるため、前著である『ゼロからわかるUML超入門』(河合(著) 2010年 技術評論社)と併読するとよい、としている。
例えば「カプセル化」について。C言語などの手続き型言語は、「手続き(プロシージャ)を記述することでプログラミングを」行う。プログラムには「手続き」と「データ」が要素として必要だが、手続き型言語では「手続きを重視し、データ処理は手続きの中で」行う。このため、プログラムが大きく複雑になっていくにつれて、「個々のデータが、どの手続きからどのように使用されるのか」が分かりにくくなってくるという課題がある。
これに対して、JavaやC++といったオブジェクト指向言語は「データと手続きを一体化した」「クラス」の集まりでプログラムを作成する。また「外部からデータに直接アクセスさせず、手続きを呼び出して(データに)アクセス」させる「カプセル化」を行う。これにより、「個々のデータが、どの手続きからどのように使用されるのか」、プログラムの規模が大きくなるにつれて分かりにくくなるという問題を避けられる点で、変更や拡張に強いというメリットを担保できる、といった具合だ。
「あるクラスに定義されたデータと手続き」を新たに定義しなくても別のクラスでそのまま再利用できる「継承」や、同じ名前の手続きが異なる振る舞いをする「多態性」についての解説も同様だ。例えば、手続き型言語で「図形の面積を求めるプログラム」を作成しようとすれば、図形が長方形、三角計、楕円形とあった場合、プログラム上では「長方形面積( )」「三角形面積( )」「楕円形面積( )」といった具合に、それぞれ名前の異なる手続きを呼び出す必要がある。
だがオブジェクト指向言語の場合、多態性の仕組みによって、「xxx面積( )」という手続きを「面積( )」の1つにまとめられる。つまり面積を求める図形の種別が増えたところで、図形種別に応じてプログラムを条件分岐させる必要がない。こうした点が拡張に伴う修正作業の手間削減に有効であり、「ソフトウェアの保守作業の効率化に大きく効いてくる」とシンプルに説いている。
■目次
1.オブジェクト指向って何?
2.オブジェクトって 何?
3.オブジェクト 指向言語って 何?
4.UMLって何?
5.クラスとインスタンス
6.カプセル化はオブジェクト指向の 原点
7.クラス間の関連
8.継承でクラスを再利用する
9.多態性ってどうやるの?
10.インタフェースって何 ?