オブジェクト指向が理解できない理由

登録は簡単!. 無料です
または 登録 あなたのEメールアドレスで登録
Rocket clouds
オブジェクト指向が理解できない理由 により Mind Map: オブジェクト指向が理解できない理由

1. 概念がかなり難しいので、完全には理解しようとせず、クラス定義あたりからトライしてみる

2. 正しいオブジェクト指向言語で学ぶ

2.1. PHPや JavaScriptは、オブジェクト指向が独特(不完全)で学びにくい

2.1.1. Javaや Ruby、Pythonは学びやすい(C++/C#等)

3. 自分のプログラムに効率の悪さを感じたら、学習のチャンス

3.1. その時に再度学習すると理解が深まる

4. クラスから、その特徴を引き継いだクラスを作る

5. オブジェクト指向

5.1. オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方(Wikipedia)

5.2. クラス→インスタンスを作る

5.3. メソッドとプロパティでプログラミングをしていく

6. オブジェクト指向以前

6.1. 構造化プログラミング

6.1.1. 関数(ファンクション)定義を中心に、プログラムを組み立てる手法

6.1.2. 大規模プログラミングでは、関数の数が膨大になり、それぞれの役割が分かりにくい

6.1.3. 引数(パラメーター)で制御していくため、引数の数や種類が膨大に

7. 分からない理由

7.1. 実感が湧かない

7.1.1. クラスを作ってインスタンスを作るメリットが分からない

7.1.1.1. 大規模なプログラミング開発で活きてくる考え方

7.1.1.2. 小規模プログラミングでは逆に非効率

7.1.1.3. 初学者には実感が湧かない

7.2. 例えが分からない

7.2.1. ロボットの設計図(=クラス)とロボット(インスタンス)などに例えられる

7.2.2. その例えの意味が分からない

7.2.2.1. インスタンス(Instance=実体)をグループにしたもの

7.2.2.1.1. 「クラス(Class)」は分類という意味

7.2.2.2. 別の型のクラスなどで、共通のメソッドなどを使えるようにする

7.2.2.3. つまり説明が反対なので分かりにくい

7.2.2.3.1. ただし、プログラミングをするときはクラス→インスタンスの順なのでややこしい

7.3. 継承・カプセル化・ポリモーフィズム

7.3.1. 継承

7.3.2. カプセル化

7.3.2.1. クラス内のプロパティを直接編集できなくすることで、安全性を高めるなど

7.3.3. ポリモーフィズム

7.3.4. 何が便利なのかが分からない

7.3.4.1. より高度で、応用しやすいプログラミング手法なので、基本が分からないと分からない

7.3.4.2. 理解できていないと、効率の悪いプログラムになる可能性がある

8. 理解するために

8.1. 完全に理解しようとしない