■集約
あるクラスが、別のクラスをインスタンスし、呼び出すことを集約と呼ぶ。
■今回作成するプログラムの仕様
▼処理概要
食べ物の名前を種類ごとに表示するクラスを作成する。
例:
果物であれば「りんご」、「みかん」、「ばなな」
魚であれば「マグロ」、「サバ」、「サーモン」
▼ざっくりクラス図
▼処理詳細
・食べ物の名前を格納・取得するクラス
・フィールド(メンバ変数)
文字列:食べ物の名前
・フィールドの値を返すメソッド
【処理】
食べ物の名前を返す。
・コンストラクタ
文字列:食べ物の名前
・食べ物のクラス(集約クラス)
・フィールド(メンバ変数)
文字列:食べ物の種類名
配列(クラス):食べ物の名前(食べ物の名前を格納・取得するクラスを配列でインスタンス)
・食べ物の名前を表示するメソッド
【処理】
食べ物の種類名を表示する。
# 繰り返し処理開始 #
設定した食べ物の名前をすべて表示する。
# 繰り返し処理終了 #
・コンストラクタ
文字列:食べ物の種類名
配列(クラス):食べ物の名前(食べ物の名前を格納・取得するクラスを配列でインスタンス)
・メインクラス
【処理】
「食べ物の名前を格納・取得するクラス」をインスタンスし、果物の名前(りんご、みかん、ばなな)をセットする。
「食べ物クラス」をインスタンスする(食べ物の種類名:果物)。
「食べ物クラス」の「食べ物の名前を表示するメソッド」を実行する。
「食べ物の名前を格納・取得するクラス」をインスタンスし、魚の名前(マグロ、サバ、サーモン)をセットする。
「食べ物クラス」をインスタンスする(食べ物の種類名:魚)。
「食べ物クラス」の「食べ物の名前を表示するメソッド」を実行する。
▼サンプルコード
// 食べ物の名前を格納・取得するクラス
class FoodName {
// 食べ物の名前
protected String food_name;
// フィールドの値を返すメソッド
public String getFruitName() {
return food_name;
}
// コンストラクタ
public FoodName(String name) {
this.food_name = name;
}
}
// 食べ物のクラス(集約クラス)
class Food{
String kind_name; // 食べ物の種類名
FoodName[] fd_name; // 食べ物の名前
// 食べ物の名前を表示するメソッド
public void ShowFoodName() {
System.out.println("####################");
System.out.println("食べ物の種類:" + this.kind_name);
System.out.println("####################");
for(int i = 0; i < this.fd_name.length; i ++) {
System.out.println("食べ物の名前:" + this.fd_name[i].getFruitName());
}
}
// コンストラクタ
public Food(String name, FoodName[] fd_name) {
this.kind_name = name;
this.fd_name = fd_name;
}
}
// メインクラス
public class Sample {
public static void main(String[] args) {
// 食べ物名前クラスをインスタンスし、果物の名前をセットする
FoodName[] fruit_name = {
new FoodName("りんご"),
new FoodName("みかん"),
new FoodName("ばなな")
};
// 食べ物クラスを果物でインスタンス
Food fruit = new Food("果物", fruit_name);
// 食べ物の名前を表示するメソッドを呼び出す
fruit.ShowFoodName();
// 食べ物名前クラスをインスタンスし、魚の名前をセットする
FoodName[] fish_name = {
new FoodName("マグロ"),
new FoodName("サバ"),
new FoodName("サーモン")
};
// 食べ物クラスを果物でインスタンス
Food fish = new Food("魚", fish_name);
// 食べ物の名前を表示するメソッドを呼び出す
fish.ShowFoodName();
}
}
▼実行結果
####################
食べ物の種類:果物
####################
食べ物の名前:りんご
食べ物の名前:みかん
食べ物の名前:ばなな
####################
食べ物の種類:魚
####################
食べ物の名前:マグロ
食べ物の名前:サバ
食べ物の名前:サーモン
コメント