160 likes | 261 Views
オブジェクト指向講習. オブジェクト指向の考え方に基づいた、ゲームの作成方法. 第 0 章 イントロダクション. オブジェクト指向とは何か? オブジェクト指向に基づいてプログラムを組むことの利点とは?. オブジェクトとは?. オブジェクトとは「メモリ上に展開される物」 変数とかが一種のオブジェクト. それらを中心に置いてプログラミングしていくのが オブジェクト指向プログラミング!!. オブジェクト指向の例 (1). たとえば、一本のペットボトルがあるとしましょう. このままではぬるいので、冷やします. 冷蔵庫に入れましょう. これは従来のプログラミングです.
E N D
オブジェクト指向講習 オブジェクト指向の考え方に基づいた、ゲームの作成方法
第0章 イントロダクション オブジェクト指向とは何か? オブジェクト指向に基づいてプログラムを組むことの利点とは?
オブジェクトとは? • オブジェクトとは「メモリ上に展開される物」 • 変数とかが一種のオブジェクト それらを中心に置いてプログラミングしていくのが オブジェクト指向プログラミング!!
オブジェクト指向の例(1) たとえば、一本のペットボトルがあるとしましょう このままではぬるいので、冷やします 冷蔵庫に入れましょう これは従来のプログラミングです
オブジェクト指向の例(2) 今のをプログラミングっぽく整理すると以下のようになります ペットボトル(物) 引数として、 冷蔵庫関数に渡す ぬるい 冷蔵庫 (関数) 戻り値として、 冷たい物が 返ってくる ペットボトル(物) 冷た~い
オブジェクト指向の例(3) では、オブジェクト指向の考え方に基づいて、 ペットボトルを冷やすことを考えましょう。 オブジェクト指向では、 ペットボトルを冷蔵庫には入れません あれ?ペットボトルにスイッチが付いてますね? ONにしてみましょう! スイッチを押したら いつの間にか冷えてました! オブジェクト指向ではオブジェクトに様々な機能を持たせる
オブジェクト指向の例(4) テレビのチャンネルを変えたい テレビ局に周波数を合わせるために テレビ内部の配線を変える 従来のプログラム チャンネルのボタンを押すだけで 内部で勝手に変わる オブジェクト指向 オブジェクト指向ではオブジェクトの内部構造を 熟知していなくてもオブジェクトを使うことができる
オブジェクト指向の例(5) 最後にゲームにありそうな例を 車やキャラ等を動かそうとします 外部から頑張って押す アクセル踏めば勝手に進む 従来のプログラム オブジェクト指向 move(car, x, y); car.move(x, y); carはクラス carクラスに関連付けられた move関数でcarの位置を動かす carは構造体 move関数でcarの位置を動かす どちらも同じように見えますがやってくうちに オブジェクト指向のが見やすいプログラムが書けることが 分かるようになります
オブジェクト指向の例のまとめ • オブジェクトに様々な機能を付けて その機能を中心に使っていくのがオブジェクト指向 • その機能を使うのには、 スイッチを押してやるだけ!!簡単!! • 従来のように、関数とか演算子を使って ゴニョゴニョとオブジェクトを操作する必要は無い
オブジェクト指向の利点 • プログラムが見やすくなる • プログラムの開発効率を上げることができる • 複数人による共同開発がしやすい • プログラムの再利用がしやすい
オブジェクト指向の問題点 • プログラムの動作が若干遅くなる →規模の大きなゲームでなければ そのまで変わらない • 実はC言語はオブジェクト指向未対応 →C++はオブジェクト指向対応なので、 C++を使う
講習予定(1) • 第0章イントロダクション • 第1章オブジェクトの概念をつかむ • 1.1節構造体 • 構造体と、その利用方法(復習) • 構造体のコンストラクタ • 1.2節列挙体
講習予定(2) • 第2章オブジェクト指向の基礎 • 2.1節クラス • 2.2節メンバ変数 • 2.3節メンバ関数 • 2.4節関数のオーバーロード • 2.5節コンストラクタ・デストラクタ • 2.6節クラスのコピーとポインタ • 2.7節静的メンバ変数・関数 • 2.8節カプセル化 • 2.9節アロー演算子・thisポインタ • 2.10節クラスと構造体の違い
講習予定(3) • 第3章演算子のオーバーロード • 3.1節二項演算子のオーバーロード • 算術演算子のオーバーロード • 比較演算子のオーバーロード • 3.2節一般関数の演算子のオーバーロード • 3.3節単項演算子のオーバーロード • 論理否定、符号演算子のオーバーロード • インクリメント、デクリメント演算子 のオーバーロード • 3.4節 friend関数とそれを用いた 演算子のオーバーロード
講習予定(4) • 第4章オブジェクトの継承 • 4.1節継承の概念と利点 • 4.2節継承の仕方 • 4.3節アクセスコントロール • 4.4節関数のオーバーライド • 4.5節仮想関数 • 4.6節純粋仮想関数と抽象クラス
注意事項など 本講習では練習問題を用意しません(一部を除く) オブジェクト指向は小規模プログラムには向いていない ので、練習問題にすることは不可能に近い その代わりに、オブジェクト指向を取り入れたゲームを 皆で一斉に作っていくことにします この続きの講習は春休み中に行います 続きが聞きたい人は春休み中の部活に参加してください なお、参加希望人数が余りにも少ない場合には この続きはありません