前提・実現したいこと
Javaで店クラスと商品クラスを定義し,店に商品を配置した後,店情報に加えて,商品情報を表示するシステムを作っています.
表示する情報として,店の名前と電話番号,商品の名前と値段です.
店の名前: Hogehoge-ya
店の電話番号: XX-XXXX-XXXX
商品の名前: hoge
商品の値段: 1000
発生している問題・エラーメッセージ
画面表示に合わせると設計シーケンス図の順に実行しておらず,
設計シーケンス図通りに実行したい.
例えば,StartUpクラスにおいて,createProducts()メソッド呼び出しをStoreオブジェクト生成の次に実行され,実行結果画面が同じになるようにしたい.
該当のソースコード
Java
1public class StartUp { 2 3 public static void main(String[] args) { 4 5 Store store = new Store("Hogehoge-ya","XX-XXXX-XXXX"); 6 Store.printStore(); 7 Store.createProducts("hoge",1000); 8 9 10 } 11 12}
Java
1public class Store { 2 3 //メンバ変数を宣言 4 private String storeName; 5 private String tel; 6 //メンバ変数を宣言(集約) 7 private Products products; 8 9 //引数がないコンストラクタを生成 10 public Store() {} 11 12 //引数がStoreName,telとするコンストラクタを生成 13 public Store(String storeName,String tel) { 14 this.storeName = storeName; 15 this.tel = tel; 16 } 17 18 //Productsクラスを生成するcreateProducts()メソッドを定義 19 public void createProducts(String productsName, int price) { 20 products = new Products(productsName, price); 21 products.printProducts(); 22 } 23 24 //店名や電話番号を表示するメソッドを定義 25 public void printStore() { 26 System.out.println("(Store)"+storeName+", TEL:"+tel); 27 } 28 29 //StoreName:Setter&Getter 30 public void setStoreName(String storeName) { 31 this.storeName = storeName; 32 } 33 34 public String getstoreName() { 35 return storeName; 36 } 37 38 //tel:Setter&Getter 39 public void setTel(String tel) { 40 this.tel = tel; 41 } 42 43 public String getTel() { 44 return tel; 45 } 46 47 //products:Setter&Getter 48 public void setProducts(Products products) { 49 this.products = products; 50 } 51 52 public Products getProducts() { 53 return products; 54 } 55 56}
Java
1public class Products{ 2 3 4 //メンバ変数を宣言 5 private String productsName; 6 private int price; 7 8 //引数がないコンストラクタを生成 9 public Products() {} 10 11 //引数がStoreName,telとするコンストラクタを生成 12 public Products(String productsName,int price) { 13 this.productsName = productsName; 14 this.price = price; 15 }; 16 17 //商品名や値段を表示するメソッドを生成 18 public void printProducts() { 19 System.out.println("(products)"+productsName+" "+price+"円"); 20 }; 21 22 //productsName:Setter&Getter 23 public void setproductsName(String productsName) { 24 this.productsName = productsName; 25 }; 26 27 public String getproductsName() { 28 return productsName; 29 }; 30 31 //price:Setter&Getter 32 public void setPrice(int price) { 33 this.price = price; 34 }; 35 36 public int getPrice() { 37 return price; 38 }; 39 40 41}
画面表示
(Store)Hogehoge-ya, TEL:XX-XXXX-XXXX (products)hope 1000円
###設計クラス図
###補足
SetterとGetterはテスト段階で使うため記述しています.
まだまだ初心者でわからないことが多いのですが,ご教授よろしくお願いいたします.