オブジェクト指向プログラミング:シンプルな例で理解しよう!
オブジェクト指向プログラミング(OOP)は、現代のプログラミングで主流な考え方です。従来の手続き型プログラミングとは異なり、オブジェクトと呼ばれる独立した単位を組み合わせることでプログラムを設計します。
このブログ記事では、簡単なサンプルコードを例に、OOPの基本的な概念をわかりやすく解説します。
サンプルコード:Personクラス
C#
class Person
{
public:
string name = "";
int age = 0;
void ShowAgeName()
{
Console.WriteLine("name {0}, age {1}", name, age);
}
void SetAgeName(string name, int age)
{
this->name = name;
this->age = age;
}
};
このコードは、Personと呼ばれるクラスを定義しています。クラスは、属性とメソッドを持つオブジェクトの設計図のようなものです。
属性
Personクラスには、2つの属性があります。
name: 名前を表す文字列型
age: 年齢を表す整数型
属性は、オブジェクトの状態を表すデータです。
メソッド
Personクラスには、2つのメソッドがあります。
ShowAgeName(): 名前と年齢を出力するメソッド
SetAgeName(string name, int age): 名前と年齢を設定するメソッド
メソッドは、オブジェクトの動作を表す処理です。
オブジェクト指向の3つの柱
OOPには、以下の3つの重要な柱があります。
封装(カプセル化)
继承(継承)
多态(多様性)
このサンプルコードでは、カプセル化の概念を少しだけ見ることができます。
カプセル化
属性nameとageは、public修飾子によって公開されています。これは、これらの属性に直接アクセスできることを意味します。しかし、実際のコードでは、通常は直接アクセスせず、SetAgeName()メソッドを通じて間接的にアクセスします。
このように、属性を公開範囲を限定することで、オブジェクトの状態を保護することができます。これがカプセル化の概念です。
オブジェクト指向の利点
OOPには、以下の利点があります。
コードの再利用性: オブジェクト指向は、コードを部品化して再利用することを容易にします。
保守性: オブジェクト指向は、コードを理解しやすく、保守しやすいようにします。
拡張性: オブジェクト指向は、コードを拡張しやすいようにします。
オブジェクト指向プログラミングは、複雑なシステムを効率的に開発するための強力なツールです。このブログ記事が、OOPの基本的な概念を理解するきっかけになれば幸いです。