OOP(オブジェクト指向プログラミング)
プログラムの作り方だよ
「モノ」に注目して設計するよ
「OOP」と表現された場合は「Object-Oriented Programming」の略だよ
簡単に書くよ
OOP(オブジェクト指向プログラミング)(読:オブジェクトシコウプログラミング 英:object-oriented programming)とは
「モノ」に注目した考え方(オブジェクト指向)でプログラムの構造を設計すること
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「オブジェクト指向」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
オブジェクト指向は「『モノ』に注目した考え方」です。
「どんなやつで、どう動く」に注目した考え方です。
例えば、そうですね。
あなたがシューティングゲーム(射撃ゲーム)を作ろうとしているとしましょう。
シューティングゲームの基本的な登場人物は
1.自分
2.敵
3.弾
です。
そして、それぞれの登場人物には「どんなやつ(属性)」と「どう動く(操作)」が設定されます。
例えば
・「自分」は3回「弾」に当たると爆発する(どんなやつ)
・「敵」は左に動ける(どう動く)
・「弾」の色は威力と対応している(どんなやつ)
などが「どんなやつ」と「どう動く」です。
あとは、用意した
1.自分
2.敵
3.弾
を組み合わせて、あれやこれやする処理を たくさん作ればゲームは完成します。
例えば
「1」の「3」が「2」に当たったら「2」が消える
(「自分」の「弾」が「敵」に当たったら「敵」が消える)
のような処理を必要な分だけ作り込めば良いでしょう。
ここまでを振り返ってみてください。
「自分」「敵」「弾」といったモノ(オブジェクト)に注目して、あれこれ考えていますよね。
このような考え方がオブジェクト指向です。
誤解を恐れずに言えば、オブジェクト指向のイメージは人形劇です。
人形劇をやるときは、まず人形を用意します。
そして、人形同士を関わらせることで1つの物語を作り上げます。
人形劇の中心は人形です。
物語は「人形に何をするか(どう動かすか)」によって決まります。
オブジェクト指向では、まずモノ(オブジェクト)を用意します。
そして、オブジェクト同士を関わらせることで1つの処理を作り上げます。
オブジェクト指向の中心はオブジェクトです。
処理は「オブジェクトに何をするか」によって決まります。
人形劇は、人形を用意して、その人形同士をあれこれすることで物語を作ります。
オブジェクト指向は、モノ(オブジェクト)を用意して、オブジェクト同士をあれこれすることで処理を作ります。
似ていますよね?
まずはオブジェクトを用意して、そのオブジェクトをあれこれしちゃうぜ!
なのがオブジェクト指向です。
以上を踏まえて
オブジェクト指向の考え方に沿った構造のプログラムを作る
のが「オブジェクト指向プログラミング」です。
「OOP」と表現されることも あります。
「OOP」と表現された場合は「Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)」の略です。
気が向いたら、覚えてあげてください。
※「Object-Oriented Programming」を何となく日本語にすると「オブジェクト指向プログラミング」となります。そのまんまですね。[詳細]
元々、プログラミングでは処理を時系列に沿って上から下に向かって順番に書くのが一般的でした。
例えば、以下のような書き方です。
司会者のピヨ子さん登場
司会者のピヨ子さんが演目内容を解説
イケメン役者のアクマ君登場
ゴツイ体型の役者のピヨ太君登場
役者のアクマ君がギャグを披露
役者のピヨ太君がギャグを披露
オブジェクト指向プログラミングでは「モノ」に注目して考えます。
例えば
A.司会者のピヨ子さん
□属性
1-1.司会者
□操作
2-1.演目内容を解説
B.役者のアクマ君
□属性
1-1.役者
1-2.イケメン
□操作
2-1.ギャグを言う
C.役者のピヨ太君
□属性
1-1.役者
1-2.ゴツい
□操作
2-1.ギャグを言う
Aが登場
Aが2-1をする
Bが登場
Cが登場
Bが2-1をする
Cが2-1をする
のように「どんなやつで、どんな動きをするか」を定義した「モノ(今回の例では「A.司会者のピヨ子さん」「B.役者のアクマ君」「C.役者のピヨ太君」)」を用意し、その「モノ」と動きの組み合わせで処理を表現するのです。
あくまでイメージの話ですが、昔のプログラミングは小説を書く作業です。
出来事を順番にズラズラっと書いていくことで物語になります。
オブジェクト指向のプログラミングは人形劇を作る作業です。
まず人形を用意して、その人形がどう動くか決めることで物語になります。
何かやらなくてはいけない処理があったときに
1.その処理を実現するには、どんな「モノ」が必要か?を考え
2.その必要な「モノ」を用意し
3.その用意した「モノ」の組み合わせで処理を実現する
のがオブジェクト指向プログラミングのイメージです。
一言でまとめるよ
まぁ「オブジェクト指向プログラミング」って単語が出てきたら「『モノ』に注目してプログラムを設計するんだな~」と お考えください。
おまけ
■訳してみるよ
「object(オブジェクト)」の意味は「物」とか「物体」とか「対象」とかです。
「指向」は日本語ですね。
「programming(プログラミング)」は「program(プログラム)」+「ing」です。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
何となく くっつけると
物体指向でプログラムを作る
となります。
■検索してみる?






