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






