😸

オブジェクト指向

2024/03/03に公開

オブジェクト指向とは

オブジェクトという概念で処理対象を捉え、これをモジュール化していくことで全体を構成するやり方。

オブジェクト指向の重要概念

メソッド…クラス内で定義した関数のこと。
プロパティ…クラス内で定義した変数のこと。
インスタンス…クラスを元に生成したオブジェクトのこと。
コンストラクタ…インスタンスの初期化メソッドのこと。
動的束縛…あるオブジェクトからのプログラムの呼び出しがどのオブジェクトの処理を呼び出すかが、プログラムが実行されたときにその場で決まる仕組み。

オブジェクト指向プログラミング言語の代表例

Java、C#、Ruby、Python、TypeScript、PHP

抽象クラス

Java、C#では、定義に「abstract」修飾子をつけることにより抽象メソッドになる。

オブジェクト指向プログラミングにおいて、抽象クラスは実際にインスタンス化されることはない。抽象クラスは、他のクラスに継承されることを意図して設計されている。

抽象クラスは、そのクラス自体ではなく、そのクラスの派生クラスで具体的な実装を提供するためのものである。すなわち、抽象クラスは共通の属性やメソッドを持つクラスのテンプレートを定義し、それを継承する具象クラスが実際のインスタンスを生成する。

クラス間の関係

サブクラスではスーパークラスの操作を再定義することが出来る。

class Animal:
    def speak(self):
        print("動物が音を出します。")

class Dog(Animal):
    def speak(self):
        print("ワンワン!")

class Cat(Animal):
    def speak(self):
        print("ニャーニャー!")

# Animalクラスのインスタンス
animal = Animal()
animal.speak()  # "動物が音を出します。" が出力される

# Dogクラスのインスタンス
dog = Dog()
dog.speak()  # "ワンワン!" が出力される

# Catクラスのインスタンス
cat = Cat()
cat.speak()  # "ニャーニャー!" が出力される

IPAの試験におけるオブジェクト指向

「システム開発技術」の分野に分類されている。

Discussion