ゲーム開発修練場
CHAPTER 01 / 02

オブジェクト指向オブジェクト指向

はじめに

この教科書ではC#プログラミングで重要な考えであるオブジェクト指向についてオブジェクト指向の三大要素と合わせて学習していきます。

オブジェクト指向

プログラミングの考え方

プログラミングの考え方は複数あり、言語の特性や実装するものに合わせてどれを採用するか決める必要があります。
Unityで開発を行う場合は「オブジェクト指向」という考え方を利用することが多いです。
C#は「オブジェクト指向言語」として、オブジェクト指向で実装するために必要な機能を言語仕様として取り込んでいます。
これらの考え方は複数を組み合わせて実装することも可能です。

考え方概要
手続き型プログラミング処理を手順として上から下へ順次実行する方式。C言語が代表例。
関数型プログラミング関数を主軸に置き、副作用を避ける方式。Haskell、F#が代表例。
アスペクト指向プログラミングログ出力、セキュリティなどの横断的関心事を分離して管理する方式。
イベント駆動プログラミングイベントの発生に応じて処理を実行する方式。GUI アプリケーションやWebアプリケーションで多用。
← スワイプして表示 →

オブジェクト指向とは

オブジェクト指向「プログラムで表現するものをオブジェクトという単位で設計・構築する考え方」です。
現実世界の「もの」をプログラムで表現するイメージで、データ(変数)処理(関数)をひとまとめにして管理します。

例えばRPGゲームのプレイヤーを考えると、プレイヤーオブジェクトを構築することになります。
このプレイヤーオブジェクトは「装備」や「武器」といった更に小さいオブジェクトを装備しています。

オブジェクトをC#で表現

先ほどのプレイヤーオブジェクトをC#で実装してみます。
戦闘画面の処理を考えると、プレイヤーには以下のような関数変数が必要になりそうです。

これをプログラムで表現すると以下のようになります。

csharp
1class Player 2{ 3 public string name; 4 public int level; 5 public int hp; 6 public int mp; 7 8 public void PhysicalAttack() { } 9 public void MagicAttack() { } 10}

オブジェクト指向とクラス

C#オブジェクト指向言語と呼ばれ言語仕様としてオブジェクト指向をサポートしています。
C#オブジェクトを表現するための機能がクラスに整備されています。
先ほどの例でもプレイヤーオブジェクトを表現するためにPlayerクラスを作成しました。

ポイント
「クラス = オブジェクトを表現する機能」ではありません。 オブジェクトを表現する機能が備わっているだけなので、オブジェクト以外の機能を実装する際にも利用します。

オブジェクト指向の三大要素

オブジェクト指向を実現するために必要とされる要素が3つあります。
「継承」「カプセル化」「ポリモーフィズム」です。
これらをまとめて「オブジェクト指向の三大要素」といいます。
次の章からはそれぞれの要素について細かく見ていきます。

ページ 1 / 2