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

April 22, 2009,
tags: java


このエントリーをはてなブックマークに追加

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

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

/**
* 一つの商品を扱うプログラム
*
*/
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