オブジェクト指向入門 ①「オブジェクト指向」とは何か? 自動車の例とかで説明する

オブジェクト指向入門

前回の「前置き」は、
「オブジェクト指向をちゃんと理解して使えるようなるのは難しいぞ」という話でした。

さて、そんなオブジェクト指向についてちゃんと一つ一つ理解していくために、
まずは、自分が習った「座学」の内容から説明していきます。

オブジェクト指向の基本的な流れ

「オブジェクト指向」を使っていくには、
要は「クラス」という概念のものを使っていけば良いです。

この「クラス」には色んな例えがありますが、
自分が教わったのは「自動車の設計図」のようなものでした。

まず、とあるソフトウェアの処理の一つを「自動車」に例えるとしましょう。
そして、オブジェクト指向においては、自動車を扱うためには「自動車の設計図」があります。
この設計図みたいなものを「クラス」と言います。

これを元に実体を作ると自動車ができます。
その時、作られた自動車は「インスタンス」と呼びます。
インスタンスは「実体」という意味です。
それから、実体化することを「インタンス化」と呼びます。

このように、「クラスを元にインスタンスを作る」のが、
オブジェクト指向の基本となる考え方です。

そして、クラスとインスタンスを合わせた広義の概念を
「オブジェクト」と言います。

オブジェクトは日本語訳すると「物」に該当する便利な用語です。
ここで、「インスタンス(実体)」を「オブジェクト(物)」と呼ぶように使われることもたまにあります。
確かに、インスタンスもオブジェクトの内に含む概念なので間違いではないですが・・・
オブジェクトは正確にいうと「クラスもインスタンスも含んだ広義のもの」です。

まずは、「クラス」「インスタンス」「オブジェクト」という用語を覚えておきましょう。

メソッドとプロパティについて

そんでもって、クラスには「変数」みたいな値の収納箱と、
「関数」みたいな処理部品を付けることができます。
これをそれぞれ「プロパティ」「メソッド」と言います。

例えば、自動車の設計図の場合は「燃料」というプロパティと、
「エンジンを動かして走る」というメソッドがあるとしましょう。
それを実体化してインスタンスにしたら、生成された自動車では燃料の量が格納できて、
走る処理を実行できるって感じになるでしょう。

要は、ここでまたプログラミングの基礎である「変数」と「関数」が出てきます。
クラスにくっついた変数はプロパティ、クラスにくっついた関数はメソッドということになります。

なので、オブジェクト指向プログラミング言語では「関数」って言葉はほとんど使わなくなります。
基本的にあらゆる関数はクラスにくっついているので「メソッド」という名称を使います。

それから、メソッドとプロパティのように、「クラスが持っている要素」のことを
まとめて「メンバ」と呼びます。

それから、プログラミング言語によっては、
プロパティは「メンバ変数」、メソッドは「メンバ関数」と呼ばれることもあります。

コンストラクタについて

あと、「クラスをインスタンス化したと同時に行う処理」というのがあって、
これを「コンストラクタ」と言います。

コンストラクタはメソッドのような一塊の処理であり、
つまり、初回実行するメソッドがコンストラクタってことです。
例えば、インスタンス生成時に初期値を入れたりする時にコンストラクタがよく使われます。

時には、別に初回実行で特にやりたいことは無しってこともあるので、
コンストラクタは必ず使うとは限りませんが、
状況次第では重要な役割を持つこともあります。

 
以上。オブジェクト指向の基本ということで、
「クラス」と「インスタンス化」と「オブジェクト」と「プロパティ」と「メソッド」と「コンストラクタ」について
説明していきました。
 
次回、実際に使っていくためには、
どう書いていけばいいのか?についての話をやります。
 

まとめ
  • 「クラス」は自動車で例えると「自動車の設計図」のようなもの
  • 設計図から実体化したものが「インスタンス」
  • クラスにくっついてる変数が「プロパティ」
  • クラスにくっついてる関数が「メソッド」
  • インスタンス化と同時に初回実行する処理が「コンストラクタ」

 

オブジェクト指向入門 ②「クラス」を実際に使いながらイメージする
今回は、クラスを実際に使う時の書き方についての話です。 クラスの使い方の基本 まず、「自動車(Car)」というクラスを作る場合は以下のように書きます。 class Car { **(中身)** } 次に、そこにメ...

コメント