読者です 読者をやめる 読者になる 読者になる

K3の住民

最近はレア社のゲームについては書いていませんが、一応レア社のゲームが一番好きな人です。『雪圀』で"圀"は"国"とほぼ同義ですが、国ではありませんって当たり前か(笑)。

「オブジェクト指向」という考え方。

花粉症 is F*ck.


皆さん、こんにちは。雪圀です。

今回、Cの基礎についてやろうと思いましたが、偶には「オブジェクト指向」の考え方
について、「JavaScript」を通して学んでいこう、という記事です。
・・・が、正直僕自身「オブジェクト指向」についてはあまり詳しくないので、
どちらかと言えばコメントにて「オブジェクト指向」に詳しい方にご教授して
もらいたいので書いた次第です。謂わば「本当にこれで合ってんのだろうか」という
確認のための記事だと思ってください。


先ず、「オブジェクト指向」の考え方として大切なのは、「クラス」
インスタンス」についてです。
「クラス」と言うのは、「オブジェクトとしての定義」だと思ってください。
例えば、「日本人」は「日本語を喋る」ことが出来ます。この「日本人」がクラス
そのものであり、「日本語を喋る」はクラスで定義されている物事になります。

しかし、「日本人」が「日本語を喋る」と定義されるだけでは、「日本人」が存在
していないので、「日本語を喋る」ことが出来ません。つまり、「日本語を喋る」
ためには「日本人が存在している」必要があります。
そのために必要なのが、「インスタンス」で、例えば先ほどの例だと「日本人が
存在している」がインスタンスになります。この「日本人が存在している」という
状態を作ることを「インスタンス化(実体化)」と呼び、クラスを利用するため
には無くてはならない存在です。

これを「JavaScript」のプログラムで表すと、このような感じです。

// クラス「Nihonjin」
var Nihonjin = function(nihongo){
  this.nihongo = nihongo;  // クラス「Nihonjin」の定義
}


// インスタンス
var Sato = new Nihonjin('こんにちは');
console.log(Sato.nihongo);

これで「佐藤」と呼ばれる日本人に「こんにちは」という日本語を喋らせることが
出来ました。

因みに「this」という単語が出てきましたが、このプログラムでは「this = Nihonjin」
という感じに、自分自身のプロパティ(「.***」とか付いている、クラスの属性の
こと)を作成する場合、「this.***」という感じにつけることが出来ます。

ここで、「オブジェクト指向」特有の考え方に移ります。
仮に「日本人」とは言っても色々な人がいるように、「車」や「椅子」にも、色々な
車、椅子があります。
ついでに言うと、例えば2つの「全く同じ椅子」があったとしても、その2つの椅子は
あくまで「別物」であり、認識としては「あの2つの椅子は全く同じ外見だけど、
『別の物』だ」と考えなければなりません。

では、「オブジェクト指向」の利点とは何でしょうか?
それはずばり、「面倒が省ける」と言うことでしょう。例えば先ほどのプログラム
だと「日本人」に「日本語を喋る」という定義をすればあとはそれぞれの「日本人」
に日本語を喋らせればいいです。
もし仮に「日本人」に「日本語を喋る」という定義が無ければ、「日本人」一人一人
に「日本語を喋る」と定義しなければならないため、非常に時間がかかりますし、
ぶっちゃけ凄い面倒くさいと思います。
だから、「オブジェクト指向」はそういう点では凄い便利な考え方だと思います。


以上です。何か足りないような気もしますが・・・色々とご指摘いただけると勉強
になるし助かります。

今回はこれくらいにしときます。