オブジェクト指向プログラミング
プログラミング言語
現代のプログラミングの主流はオブジェクト指向!カプセル化・継承・多相性の3本柱を押さえよう!
オブジェクト指向プログラミング
簡単にいうと
現代のプログラミングの主流はオブジェクト指向!カプセル化・継承・多相性の3本柱を押さえよう!
① オブジェクト指向の基本的な考え方
オブジェクト指向プログラミング(OOP: Object-Oriented Programming)は、プログラムをオブジェクトの集まりとして捉える設計手法です。オブジェクトとは、データ(属性)とそのデータを操作するメソッド(手続き)をひとまとめにしたものです。
たとえば「自動車」というオブジェクトを考えると、色・排気量・現在速度といったデータと、アクセルを踏む・ブレーキをかける・ハンドルを切るといったメソッドが一体化されています。
オブジェクト同士はメッセージを送り合うことでやり取りします。あるオブジェクトが別のオブジェクトに「この処理をしてください」とメッセージを送ると、受け取った側が自分のメソッドを実行して応答します。この仕組みにより、各オブジェクトが独立して責任を持ち、プログラム全体の見通しがよくなります。
オブジェクトの設計図にあたるものをクラスと呼びます。クラスは「どんなデータを持ち、どんなメソッドがあるか」を定義したテンプレートで、クラスをもとに生成された実体がオブジェクト(インスタンス)です。
② カプセル化(Encapsulation)
カプセル化とは、オブジェクト内部のデータやメソッドの詳細を外部から直接見えないように隠蔽(情報隠蔽)する仕組みです。外部からは公開されたメソッド(インタフェース)を通じてのみデータにアクセスできます。
カプセル化のメリットは主に2つあります。
- 安全性の向上: 外部から内部データを不正に書き換えられることを防止できる
- 独立性の確保: 内部構造を変更しても、外部のインタフェースが同じなら他の部分に影響しない
③ 継承(Inheritance)
継承とは、既存のクラス(親クラス/スーパークラス)が持つ属性やメソッドを、新しいクラス(子クラス/サブクラス)がそのまま引き継ぐ仕組みです。子クラスは親クラスの機能をベースにしつつ、独自の属性やメソッドを追加・変更できます。
たとえば「乗り物」クラスから「自動車」クラスや「自転車」クラスを派生させると、「乗り物」が持つ共通機能(移動する、停止するなど)を重複して記述せずに済みます。これによりコードの再利用性が大幅に向上し、開発効率と保守性が高まります。
④ 多相性(ポリモーフィズム / Polymorphism)
多相性とは、同じメッセージ(操作の呼び出し)を送っても、受け取るオブジェクトの種類によって異なる動作を実行する性質です。
たとえば「面積を計算せよ」というメッセージを送ったとき、「円」オブジェクトはの計算を行い、「長方形」オブジェクトはの計算を行います。呼び出し側は相手が円なのか長方形なのかを意識せず、同じ「面積計算」メッセージを送るだけでよいのです。
多相性により、新しい図形クラスを追加しても既存のコードを修正する必要がなく、拡張性の高いプログラムを構築できます。
具体例
オブジェクト指向の3つの概念を、「スマートフォン」を使って整理してみましょう。
カプセル化: スマートフォンの内部にはCPU・メモリ・バッテリーなど複雑な部品が詰まっていますが、ユーザーは画面をタッチするだけで操作できます。内部構造を知らなくても使える。これがカプセル化です。内部の回路設計が変わっても、タッチ操作の方法が変わらなければユーザーには影響がありません。
継承: 「携帯電話」という親クラスから「スマートフォン」が継承され、さらに「iPhone」や「Android端末」が派生しているイメージです。「通話する」「メールを送る」といった基本機能は親クラスから受け継ぎつつ、「アプリをインストールする」「顔認証でロック解除する」といった独自機能が追加されています。
多相性: 「音楽を再生する」というメッセージをiPhoneに送ればApple Musicが起動し、Android端末に送ればYouTube Musicが起動する。同じ命令でもオブジェクト(端末)ごとに振る舞いが異なる。これが多相性です。
試験のポイント
- ・要は「カプセル化=隠蔽、継承=親→子への引継ぎ、多相性=同じ操作で異なる動作
- ・3つの基本概念を正確に区別」
- ・クラス=設計図、インスタンス=実体、メッセージ=オブジェクト間のやり取りも頻出
- ・試験では3概念の定義を入れ替えた選択肢が出るので、それぞれの意味を明確に覚える
独学で診断士合格を目指すなら
過去問演習・AI添削・テキストPDFまで
すべて揃ったプレミアムプランで合格を掴む!
予備校代の1/10以下で、独学の不安をまるごと解決
- 📝1次試験 過去問演習(全7科目・年度別)無制限プレミアム限定
- 🤖2次試験 AI添削(事例I〜IV・無制限)最適なフィードバックで実力アッププレミアム限定
- 📄科目別テキストPDFダウンロード。印刷して好きな使い方で学習できるプレミアム限定
- 🔖ブックマーク機能で苦手分野・何度も確認したい部分を管理プレミアム限定
- 📊学習記録・成績管理で自分の進捗を可視化プレミアム限定
プレミアムプラン
¥9,800(税込)
自動更新なし / 1年間有効
決済は Stripe(PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。