pafuイーランスクール 学んでできる

メニューへ戻る

4章 オブジェクト指向

学習のポイント

オブジェクト指向の「考え方・捉え方」をしっかりと理解しましょう。

1. オブジェクトとは?
オブジェクト指向」において、実世界に存在するものは、すべて、「クラス」としてとらえることが出来ます。例えば、電話、冷蔵庫、洗濯機などはすべてクラスです。このクラスに命を吹き込んだものが「インスタンス」=「オブジェクト」です。例えば、電話クラスから命を吹き込んで、「山田さんのスマートフォン」「田中さんの家の固定電話」というように考えます。
2. 事例で考えよう!
ある喫茶店があったとします。開店当初は、店長が一人で「調理」「配膳」「レジ」などを行っていました。しかし、お店が繁盛してきて、1人ではどうにもならなくなりました。そこで、「ウェイター」の「小原君」と「田村君」を採用し、「調理のコック」として「川口」を採用しました。これをオブジェクト指向のアプローチで考えます。
まず、存在するものは、以下のものとなります。

■ 店長
■ ウェイター
■ コック

の3種類です。

●ウェイターについて
・名前
・配膳する
・レジを担当する

●コック
・名前
・経験年数
・調理する

●店長
ウェイターやコックに指示をする

オブジェクト指向では、上記の登場人物を「クラス」として定義します。クラスには、「属性」の「フィールド」と「操作」の「メソッド」があります。

■ ウェイタークラス
・フィールド
  名前
・メソッド
  配膳する
  レジを担当する

■ コッククラス
・フィールド
  名前
  経験年数
・メソッド
  調理する

ここで、クラスから実際の実世界に登場する人物を生成することを「インスタンス化」といいます。ウェイタークラスからインスタンス化して「小原君」と「田村君」を生成し、コッククラスから「川口君」を生成します。
次に、これらの「ウェイター」「コック」の司令塔になるのが「店長クラス」です。このクラスは、インスタンス化する必要はありません。そのかわり、Javaの開始点である「mainメソッド」を持ちます。この中から、インスタンス化をし、全体の司令塔の役割をする訳です。
3. インスタンス化を考える
実際のインタンス化について考えましょう。

インスタンス化の構文
クラス名 インスタンス名 = new クラス名(引数リスト);

となります。
ウェイタークラスのクラス名「CUeiter」、コッククラスのクラス名「CKoku」、店長クラスのクラス名「CMain」 とします。

ウェイタークラスのインスタンス化
CUeiter ueiter1 = new CUeiter("小原");
CUeiter ueiter2 = new CUeiter("田村");

コッククラスのインタンス化
CKoku koku = new CKoku("川口", 10);

次にインスタンス名を使用してクラスで定義したメソッドが実行することができます。

ueiter1.配膳する();
ueiter2.レジを担当する();
koku.調理する();
・・・

こんな感じです。

これらの処理は、店長クラス「CMain」の「mainメソッド」で行います。

4. コンストラクタを考える
コンストラクタとは、クラスからインスタンスを生成する際に呼び出される特殊なメソッドです。
例えば、
ウェイタークラスのインスタンス化
CUeiter ueiter1 = new CUeiter("小原");
CUeiter ueiter2 = new CUeiter("田村");
ここで、()の中の「小原」「田村」がコンストラクタの引数となります。 コンストラクタは、インスタンス化の際の初期処理を行います。 今回の例は、名前をフィールドを設定したことになります。
5. 継承を考える
似たようなクラスがあった場合、いちいち最初から作成するのではなく、もともとあるクラスをもとにして新たなクラスを作成します。これを継承といいます。

もともとあったクラス…スーパークラス
スーパークラスを基に新たに作成したクラス…サブクラス

6. インターフェースを考える
複数のクラスがあったとします。親子関係は特にありませんが、これらのクラスに「共通の処理を実装させたい」場合には、「インターフェース」を使用します。
7. 多態性(ポリモーフィズム)
多態性とは、「ポリモーフィズム」とも言います。これは、同じメソッドでも、その振る舞いが違うことを言います。例えば「鳴く」というメソッドの場合、「犬」は「ワンワン」、「猫」は「ニャオ」というように異なる振る舞いをします。これについては、クラスの章で詳しく解説します。
8. まとめ
上記の通り、Javaは、「クラスを1個のソースファイル名」は、「クラス名.java」と付けます。クラスには、「フィールド」「メソッド」「コンストラクタ」から構成されています。また、Javaのプログラムの開始は、「main」メソッドがあるクラスから開始されます。

オブジェクト指向プログラミングをしっかりと学びたいという方は「pafuイーランスクール」「Javaオブジェクト指向講座」よりご確認ください。また、書籍のみご希望の方は「こちら」よりご確認ください。

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる