オブジェクト指向が理解できない理由
por Makoto Taniguchi
1. つまり説明が反対なので分かりにくい
2. ただし、プログラミングをするときはクラス→インスタンスの順なのでややこしい
3. Javaや Ruby、Pythonは学びやすい(C++/C#等)
4. ロボットの設計図(=クラス)とロボット(インスタンス)などに例えられる
5. 完全に理解しようとしない
6. クラス内のプロパティを直接編集できなくすることで、安全性を高めるなど
7. 構造化プログラミング
8. 大規模プログラミングでは、関数の数が膨大になり、それぞれの役割が分かりにくい
8.1. オブジェクト同士の相互作用として、システムの振る舞いをとらえる考え方(Wikipedia)
9. PHPや JavaScriptは、オブジェクト指向が独特(不完全)で学びにくい
10. メソッドとプロパティでプログラミングをしていく
11. 引数(パラメーター)で制御していくため、引数の数や種類が膨大に
12. クラス→インスタンスを作る
13. 関数(ファンクション)定義を中心に、プログラムを組み立てる手法
14. 概念がかなり難しいので、完全には理解しようとせず、クラス定義あたりからトライしてみる
15. 正しいオブジェクト指向言語で学ぶ
16. 自分のプログラムに効率の悪さを感じたら、学習のチャンス
16.1. その時に再度学習すると理解が深まる
17. クラスから、その特徴を引き継いだクラスを作る
18. オブジェクト指向
19. オブジェクト指向以前
20. 分からない理由
20.1. ポリモーフィズム
20.1.1. 別の型のクラスなどで、共通のメソッドなどを使えるようにする
20.1.1.1. 初学者には実感が湧かない
20.2. 実感が湧かない
20.2.1. その例えの意味が分からない
20.2.1.1. インスタンス(Instance=実体)をグループにしたもの
20.2.2. クラスを作ってインスタンスを作るメリットが分からない
20.2.2.1. 大規模なプログラミング開発で活きてくる考え方
20.2.2.2. 小規模プログラミングでは逆に非効率
20.3. 何が便利なのかが分からない
20.3.1. 「クラス(Class)」は分類という意味
20.3.2. 理解できていないと、効率の悪いプログラムになる可能性がある
20.4. 継承
20.5. 継承・カプセル化・ポリモーフィズム
20.5.1. カプセル化
20.6. 例えが分からない
20.6.1. より高度で、応用しやすいプログラミング手法なので、基本が分からないと分からない