4章 オブジェクト指向
学習のポイント
オブジェクト指向の「考え方・捉え方」をしっかりと理解しましょう。
1. オブジェクトとは? |
「オブジェクト指向」において、実世界に存在するものは、すべて、「クラス」としてとらえることが出来ます。例えば、電話、冷蔵庫、洗濯機などはすべてクラスです。このクラスに命を吹き込んだものが「インスタンス」=「オブジェクト」です。例えば、電話クラスから命を吹き込んで、「山田さんのスマートフォン」「田中さんの家の固定電話」というように考えます。 |
2. 事例で考えよう! |
ある喫茶店があったとします。開店当初は、店長が一人で「調理」「配膳」「レジ」などを行っていました。しかし、お店が繁盛してきて、1人ではどうにもならなくなりました。そこで、「ウェイター」の「小原君」と「田村君」を採用し、「調理のコック」として「川口」を採用しました。これをオブジェクト指向のアプローチで考えます。 まず、存在するものは、以下のものとなります。
■ 店長
●ウェイターについて
●コック
●店長
■ ウェイタークラス
■ コッククラス 次に、これらの「ウェイター」「コック」の司令塔になるのが「店長クラス」です。このクラスは、インスタンス化する必要はありません。そのかわり、Javaの開始点である「mainメソッド」を持ちます。この中から、インスタンス化をし、全体の司令塔の役割をする訳です。 |
3. インスタンス化を考える |
実際のインタンス化について考えましょう。
インスタンス化の構文 ウェイタークラスのクラス名「CUeiter」、コッククラスのクラス名「CKoku」、店長クラスのクラス名「CMain」 とします。
ウェイタークラスのインスタンス化
ueiter1.配膳する(); これらの処理は、店長クラス「CMain」の「mainメソッド」で行います。 |
4. コンストラクタを考える |
コンストラクタとは、クラスからインスタンスを生成する際に呼び出される特殊なメソッドです。 例えば、 ウェイタークラスのインスタンス化 CUeiter ueiter1 = new CUeiter("小原"); CUeiter ueiter2 = new CUeiter("田村"); ここで、()の中の「小原」「田村」がコンストラクタの引数となります。 コンストラクタは、インスタンス化の際の初期処理を行います。 今回の例は、名前をフィールドを設定したことになります。 |
5. 継承を考える |
似たようなクラスがあった場合、いちいち最初から作成するのではなく、もともとあるクラスをもとにして新たなクラスを作成します。これを継承といいます。
もともとあったクラス…スーパークラス |
6. インターフェースを考える |
複数のクラスがあったとします。親子関係は特にありませんが、これらのクラスに「共通の処理を実装させたい」場合には、「インターフェース」を使用します。 |
7. 多態性(ポリモーフィズム) |
多態性とは、「ポリモーフィズム」とも言います。これは、同じメソッドでも、その振る舞いが違うことを言います。例えば「鳴く」というメソッドの場合、「犬」は「ワンワン」、「猫」は「ニャオ」というように異なる振る舞いをします。これについては、クラスの章で詳しく解説します。 |
8. まとめ |
上記の通り、Javaは、「クラスを1個のソースファイル名」は、「クラス名.java」と付けます。クラスには、「フィールド」「メソッド」「コンストラクタ」から構成されています。また、Javaのプログラムの開始は、「main」メソッドがあるクラスから開始されます。 |
オブジェクト指向プログラミングをしっかりと学びたいという方は「pafuイーランスクール」「Javaオブジェクト指向講座」よりご確認ください。また、書籍のみご希望の方は「こちら」よりご確認ください。
メニューへ戻る