package j2.lesson06;
/**
* 課題1903 - 解答例.
* ほげ書店のレシート兼領収書を表すクラス.
* @author arakawa
* @version $Id: HogeBooksHybridReceipt_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
*/
public class HogeBooksHybridReceipt implements Receipt, Acquittance {
private final HogeBooksReceipt receipt;
private final HogeBooksAcquittance acquittance;
/**
* レシート兼領収書のインスタンスを作成する。
*/
public HogeBooksHybridReceipt() {
super();
this.receipt = new HogeBooksReceipt();
this.acquittance = new HogeBooksAcquittance();
}
/**
* この領収書兼レシートを表示する。
*/
public void show() {
this.acquittance.show();
System.out.println("================");
this.receipt.show();
}
/**
* 購入した商品を追加する。
* @param name 商品の名前
* @param cost 商品の単価
*/
public void addItem(String name, int cost) {
this.receipt.addItem(name, cost);
// 正式な領収書の合計金額をレシートのものと揃える
this.acquittance.setTotalAmount(this.receipt.getTotalAmount());
}
/**
* 合計金額を取得する。
* @return 合計金額
*/
public int getTotalAmount() {
return this.receipt.getTotalAmount();
}
/**
* 支払人の名前を取得する。
* @return 支払人の名前
*/
public String getPayerName() {
return this.acquittance.getPayerName();
}
/**
* 支払人の名前を設定する。
* @param payer 支払人の名前
*/
public void setPayerName(String payer) {
this.acquittance.setPayerName(payer);
}
/**
* 発行者の名前を取得する。
* @return 発行者の名前
*/
public String getIssuerName() {
return this.acquittance.getIssuerName();
}
/**
* 但し書きを取得する。
* @return 但し書き
*/
public String getFinePrint() {
return this.acquittance.getFinePrint();
}
/**
* 但し書きを設定する。
* @param finePrint 但し書き
*/
public void setFinePrint(String finePrint) {
this.acquittance.setFinePrint(finePrint);
}
/**
* サンプルプログラム。
* @param args 無視される
*/
public static void main(String[] args) {
HogeBooksHybridReceipt receipt = new HogeBooksHybridReceipt();
receipt.setPayerName("ふー");
receipt.setFinePrint("書籍代");
receipt.addItem("雑誌", 250);
receipt.addItem("文庫", 530);
receipt.show();
}
}
|