抽象と具体は、実はずっと学校でやってきた話
オブジェクト指向に入ると、
「急に難しくなった気がする」
「抽象って何ですか?」
と感じる方がいます。
でも安心してください。
抽象と具体は、これまでの人生で何度も使っています。
ただ、「抽象」という名前で意識していなかっただけです。
1. 具体とは何か?
具体とは、
はっきりしているもの・目に浮かぶもの
です。
例:
- 山田さん
- HPが100の勇者
- 赤いりんご
全部、具体です。
2. 抽象とは何か?
抽象とは、
共通点だけを取り出してまとめたもの
です。
例:
- りんご、みかん、ぶどう → 「果物」
- 山田さん、佐藤さん → 「人」
- 勇者、魔法使い、戦士 → 「プレイヤー」
細かい違いをいったん置いて、
共通している部分だけを見る。
これが抽象です。
3. 実は学校でずっとやっている
■ 国語
「この文章の要点を書きなさい」
これは、
具体的な文章
↓
抽象的なまとめ
をしています。
■ 数学
2 + 3 = 5
5 + 7 = 12
やがて、
a + b
になります。
数字(具体)を
文字(抽象)にしています。
かなり高度な抽象化です。
4. なぜオブジェクト指向で難しく感じるのか?
オブジェクト指向は、
具体から抽象を作る作業
だからです。
勇者
魔法使い
戦士
↓
共通点は?
- 名前がある
- HPがある
- 攻撃できる
↓
「Playerクラス」
これが抽象です。
5. 抽象は「能力」ではなく「慣れ」
抽象で一度止まる人は珍しくありません。
それは、
- 今まで意識してこなかった
- 言葉として学んでいない
- 思考の切り替えに慣れていない
というだけです。
能力の問題ではありません。
抽象は「思考のモード」を少し変える作業です。
最初に違和感があるのは自然です。
6. コツは一つだけ
いつもこう考えてみてください。
「これとこれの共通点は何だろう?」
それだけです。
7. プログラミングでの意味
プログラミングは、
現実を整理する仕事
です。
抽象が見えるようになると、
- クラス設計が整理される
- コードが読みやすくなる
- バグが減る
- 他人のコードが理解しやすくなる
少しずつ世界が広がります。
最後に
もし今、少しモヤッとしていても大丈夫です。
抽象は突然ひらめくものではなく、
繰り返しの中で静かに慣れていくものです。
このクラスでは、急ぎません。
具体から一緒に積み上げていきましょう。




ディスカッション
コメント一覧
まだ、コメントがありません