授業で書いたソースコード

Twitter ツイート Hatena Bookmark ブックマーク

1つの商品しか扱えないプログラムです。
暇があれば今週末あたりにコレクションフレームワークをつかって何個も商品扱えるようにしてみたい。。

実装パターンのテキストとか見て自分なりにがんばって書いたのですが・・・なんかうまく実装パターン(Composed Methodパターン)っぽく書けないス。。
Cartって名前になってるけど、クラス名変えたほうがいいね・・・。

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
/**
* 一つの商品を扱うプログラム
*
*/
class Cart{
	int itemNumber; //商品番号
	String itemName; //名称(商品名)
	int itemPrice; //商品価格
	int salesPrice; //売上額
	int itemStockNumber; //在庫数

	public static void main(String[] args){
		Cart c = new Cart(12,"アメリカンソフトクッキー",100);
		c.stockItem(20);
		c.sellItem(10);
		c.show();
		System.out.println(c.salesPrice);
	}


	Cart(int itemNumber, String itemName, int itemPrice){
		setItemNumber(itemNumber);
		setItemName(itemName);
		setItemPrice(itemPrice);

		setDefaultSalesPrice();
		stockDefaultItem();
	}


	/**
	* 商品の在庫を追加する(入荷)
	*/
	void stockItem(int s){
		itemStockNumber = s;
	}

	/*
	* 商品の在庫のデフォルト値
	*/
	void stockDefaultItem(){
		stockItem(0);
	}

	/*
	* 商品番号を追加する
	*/
	void setItemNumber(int s){
		itemNumber = s;
	}

	/*
	* 名前を設定する
	*/void setItemName(String s){
		itemName = s;
	}

	/*
	* 価格を設定する
	*/
	void setItemPrice(int s){
		itemPrice = s;
	}

	/*
	* 売上を設定
	*/
	void setSalesPrice(int s){
		salesPrice = s;
	}

	/*
	* 売上デフォルト値
	*/
	void setDefaultSalesPrice(){
		setSalesPrice(0);
	}

	/*
	* 売上を取得する
	*/
	int getSalesPrice(){
		return salesPrice;
	}

	/*
	* 商品番号を取得
	*/
	int getItemNumber(){
		return itemNumber;
	}

	/*
	* 名前を取得する
	*/
	String getItemName(){
		return itemName;
	}

	/*
	* 価格を取得
	*/
	int getItemPrice(){
		return itemPrice;
	}

	/*
	* 在庫数の取得
	*/
	int getItemStock(){
		return itemStockNumber;
	}

	/*
	* 販売した数だけ在庫数を減らす
	*/
	void sellItemStock(int s){
		itemStockNumber -= s;
	}

	/*
	* 販売した数だけ売上を増やす
	*/
	void sellSalesPrice(int s){
		salesPrice += itemPrice * s;
	}

	/*
	* 販売
	*/
	void sellItem(int s){
		if(s > 0 || itemStockNumber > 0){
			sellItemStock(s);
			sellSalesPrice(s);
		}
	}

	/*
	* 表示
	*/
	void show(){
		System.out.println("商品番号:" + getItemNumber());
		System.out.println("名称:" + getItemName());
		System.out.println("価格:" + getItemPrice());
		System.out.println("在庫:" + getItemStock());
	}

}
comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。