【おぶじぇくとしこう】

オブジェクト指向 とは?

💡 「モノ」を中心にプログラムを組み立てる
📌 このページのポイント
オブジェクト指向の4つの柱 カプセル化 クラス: User 🔒 name 🔒 email getName() setEmail() データとメソッドを一つにまとめる 継承 動物 親クラスの機能を子が受け継ぐ ポリモーフィズム 共通インタフェース: 鳴く() 犬→ワン 猫→ニャー 鳥→ピヨ 同じ操作でも実装が異なる 抽象化 利用者 car.drive() エンジン制御 燃料噴射 ギア変速... 複雑な内部処理を隠して シンプルなインタフェースを提供
オブジェクト指向の4つの柱
ひよこ ひよこ

オブジェクト指向って何がいいの?

ペンギン先生 ペンギン先生

現実世界のモノになぞらえてプログラムを設計できるのが強みだよ。例えば「犬」クラスに「名前」「鳴く()」「走る()」を定義すれば、「ポチ」「タロウ」という個別の犬(インスタンス)を作れる。データと振る舞いがセットだから、コードの見通しが良くなるんだ

ひよこ ひよこ

カプセル化って何?

ペンギン先生 ペンギン先生

オブジェクトの内部データを外部から直接触れないように隠蔽することだよ。銀行口座の「残高」を直接書き換えられたら危険だけど、「入金()」「出金()」メソッド経由でしかアクセスできないようにすれば安全。内部の実装を変えても外部のコードに影響しないのが大きなメリットだね

ひよこ ひよこ

継承って必要?

ペンギン先生 ペンギン先生

「is-a」関係(犬は動物である)なら継承が自然だけど、深い継承階層はコードを複雑にする。最近は「継承より合成(composition over inheritance)」が主流で、機能を小さなパーツに分けて組み合わせる設計が好まれるよ。GoやRustには継承自体がないんだ

ひよこ ひよこ

オブジェクト指向は時代遅れ?

ペンギン先生 ペンギン先生

時代遅れではないけど「万能ではない」という認識が広まったね。関数型プログラミングの不変性やパイプラインは並行処理と相性が良い。TypeScriptKotlinではオブジェクト指向と関数型を柔軟に使い分ける「マルチパラダイム」が主流だよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
オブジェクト指向」って出てきたら「データと処理をセットにして扱うプログラミング手法」と思えればだいたいOK!
📖 おまけ:英語の意味
「Object-Oriented Programming(OOP)」 = オブジェクト指向プログラミング
💬 Object(モノ)をOriented(中心にした)Programming(プログラミング)だよ
← 用語集にもどる