「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

Object-Oriented Programming

pointこの用語のポイント

pointプログラムの作り方だよ

point「モノ」に注目して設計するよ

point「オブジェクト指向プログラミング」の英語表現だよ

スポンサーリンク

簡単に書くよ

Object-Oriented Programming(読:オブジェクト・オリエンテッド・プログラミング)とは

「オブジェクト指向プログラミング」のこと。
用語の中身としては

「モノ」に注目した考え方(オブジェクト指向)でプログラムの構造を設計すること
です。


image piyo

詳しく書くよ

最初に留意事項です。
オブジェクト指向プログラミング」と言われて「あぁ、アレのことね」と分かる方は最後まで読む必要ありません。
オブジェクト指向プログラミングの英語表現が「Object-Oriented Programming」です。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)

オブジェクト指向プログラミングを「OOP」と表現することがあります。
この「OOP」が「Object-Oriented Programming」の省略表現なのです。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)2

※「Object-Oriented Programming」を何となく日本語にすると「オブジェクト指向プログラミング」となります。そのまんまですね。[詳細]

以上が「オブジェクト指向プログラミング」の意味を知っている人向けの説明です。

「オブジェクト指向プログラミングって何?美味しいの?」な人は、このまま読み進めてください。
用語の中身について説明します。

ちょっと休憩5

それでは、いってみましょう。
まずは予備知識として「オブジェクト指向」について結構ガッツリ説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。

オブジェクト指向は「『モノ』に注目した考え方」です。
「どんなやつで、どう動く」に注目した考え方です。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)3

例えば、そうですね。
あなたがシューティングゲーム(射撃ゲーム)を作ろうとしているとしましょう。

シューティングゲームの基本的な登場人物は

1.自分
2.敵
3.弾


です。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)4

そして、それぞれの登場人物には「どんなやつ属性」と「どう動く(操作)」が設定されます。
例えば

・「自分」は3回「弾」に当たると爆発する(どんなやつ)
・「敵」は左に動ける(どう動く)
・「弾」の色は威力と対応している(どんなやつ)


などが「どんなやつ」と「どう動く」です。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)5

あとは、用意した

1.自分
2.敵
3.弾


を組み合わせて、あれやこれやする処理を たくさん作ればゲームは完成します。
例えば

「1」の「3」が「2」に当たったら「2」が消える
(「自分」の「弾」が「敵」に当たったら「敵」が消える)


のような処理を必要な分だけ作り込めば良いでしょう。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)6

ここまでを振り返ってみてください。
「自分」「敵」「弾」といったモノオブジェクトに注目して、あれこれ考えていますよね。
このような考え方がオブジェクト指向です。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)7

誤解を恐れずに言えば、オブジェクト指向のイメージは人形劇です。

人形劇をやるときは、まず人形を用意します。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)8

そして、人形同士を関わらせることで1つの物語を作り上げます。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)9

人形劇の中心は人形です。
物語は「人形に何をするか(どう動かすか)」によって決まります。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)10

オブジェクト指向では、まずモノ(オブジェクト)を用意します。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)11

そして、オブジェクト同士を関わらせることで1つの処理を作り上げます。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)12

オブジェクト指向の中心はオブジェクトです。
処理は「オブジェクトに何をするか」によって決まります。

Object-Oriented Programming(オブジェクト・オリエンテッド・プログラミング)13

人形劇は、人形を用意して、その人形同士をあれこれすることで物語を作ります。
オブジェクト指向は、モノ(オブジェクト)を用意して、オブジェクト同士をあれこれすることで処理を作ります。
似ていますよね?

まずはオブジェクトを用意して、そのオブジェクトをあれこれしちゃうぜ!

なのがオブジェクト指向です。

以上を踏まえて

オブジェクト指向の考え方に沿った構造のプログラムを作る

のが「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.その用意した「モノ」の組み合わせで処理を実現する


のがオブジェクト指向プログラミングのイメージです。


image piyo2

一言でまとめるよ

まぁ「Object-Oriented Programming」って単語が出てきたら「オブジェクト指向プログラミング(「モノ」に注目してプログラムを設計すること)のことなんだな~」と お考えください。

一番上に戻るよ
スポンサーリンク
書籍画像017
書籍画像061

おまけ

■訳してみるよ

「object(オブジェクト)」の意味は「物」とか「物体」とか「対象」とかです。
「oriented(オリエンテッド)」の意味は「指向」とか「志向」とかです。
「programming(プログラミング)」は「program(プログラム)」+「ing」です。
「program(プログラム)」の意味は「計画」とか「演目」とか「(コンピュータの)プログラム」とかです。
何となく くっつけると

物体指向でプログラムを作る

となります。




書籍画像
わわわ説明術コラム
宣伝だよ
「分かった!」と思わせる説明の技術 知識ゼロの相手にも伝わるようになる本
タヌキとキツネ
ソフトウェア受託現場の「失敗」集めてみた。 42の失敗事例で学ぶ受託開発のうまい進めかた