こんにちは!ペンすけです!
ついに、Java言語の重要単元である オブジェクト指向 の考え方について勉強しました!
前回までの投稿はこちらから▼▼
正直、オブジェクト指向はよくわからない…。。。
「オブジェクト指向は現実世界を元にしている」とのことから、世界初?夢の国でオブジェクト指向の考え方を取り入れてみました!
オブジェクト指向がよくわからないって方は、是非参考にしてみてください!
オブジェクト指向の基本=クラス定義
まずは基本を抑えよう!ということで、 クラスとは何か を簡単に説明します!
「クラス = モノの設計図」と言い換えてみよう!
加えて「インスタンス = モノの実体」と言い換えてみましょう。
とは言っても、わかりづらいのは百も承知なので、夢の国を参考に説明します!
1. アトラクションに共通する事項は何か
アトラクションに必要な要素は何だろう!
実際に乗ったことがあるアトラクションに共通する要素を抜き出してみよう!
実際のアトラクションの基本情報を見てみましょう▼▼
他のアトラクションも確認すると、次の事項が共通してあることがわかります。
アトラクション名 / エリア名 / 定員 / 待ち時間 等
これらがアトラクションが共通して持つ 属性(メンバ) となります。
2. 属性を操作する処理を考える
アトラクションの属性を列挙するだけでは不十分です。
属性の値を設定や、更新、表示する処理が必要だね!
これらも各アトラクションに共通して必要!
- アトラクション名/エリア名/定員を設定する処理
- 待ち時間を更新する処理
- 属性を表示する処理
3. 新しいアトラクションを作る場合は?
では、ここで新しいアトラクションを作ることを想定しましょう。
新しいアトラクションか~
どんな名称だろう…!気になる!
実際のところ、新しいアトラクションができる際には、名称(名前)はもちろん、アトラクションが位置するエリア名も自然と決まっているはずです。
そのため、新しくアトラクションを作る際には、
名前とエリア名を同時に設定するために コンストラクタ を用います!
新しくアトラクションを作る際には、アトラクション名とエリア名を設定する
実際のコーディング
// アトラクションクラスの定義
public class Attraction{
// アトラクション名
private String name;
// エリア名
private String area;
// 定員
private int capacity;
// 待ち時間
private int waitTime;
// コンストラクタ
public Attraction(String name, String area, int capacity){
this.name = name;
this.area = area;
this.capacity = capacity;
}
// 待ち時間の更新
void addWaiTime(int num){
waitTime += num;
}
// 待ち時間表示
public void dispWaitTime(){
System.out.println("現在の待ち時間: " + waitTime);
}
// 属性表示
public void printInfo(){
System.out.println("アトラクション名: " + name);
System.out.println("エリア名: " + area);
System.out.println("定員: " + capacity);
}
}
コメント