解答例 - j2.lesson06.HogeBooksAcquittance

package j2.lesson06;

/**
 * 課題1902 - 解答例.
 * ほげ書店の正式な領収書.
 @author arakawa
 @version $Id: HogeBooksAcquittance_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class HogeBooksAcquittance implements Acquittance {

    private String payer;
    private int totalAmount;
    private String finePrint;

    /**
     * 正式な領収書のインスタンスを生成する。
     * 支払人、合計金額、但し書きの初期値は次のようになっている。
     <ul>
     <li> 支払人 - "上" </li>
     <li> 合計金額 - 0 </li>
     <li> 但し書き - "お品代" </li>
     </ul>
     */
    public HogeBooksAcquittance() {
        super();
        this.payer = "上";
        this.finePrint = "お品代";
        this.totalAmount = 0;
    }

    /**
     * 支払人の名前を取得する。
     @return 支払人の名前
     */
    public String getPayerName() {
        return this.payer;
    }
    
    /**
     * 支払人の名前を設定する。
     @param payer 支払人の名前
     */
    public void setPayerName(String payer) {
        this.payer = payer;
    }

    /**
     * 発行者の名前を取得する。
     @return 発行者の名前
     */
    public String getIssuerName() {
        return "ほげ書店";
    }

    /**
     * 合計金額を取得する。
     @return 合計金額
     */
    public int getTotalAmount() {
        return this.totalAmount;
    }
    
    /**
     * 合計金額を設定する。
     @param totalAmount 合計金額
     */
    public void setTotalAmount(int totalAmount) {
        this.totalAmount = totalAmount;
    }

    /**
     * 但し書きを取得する。
     @return 但し書き
     */
    public String getFinePrint() {
        return this.finePrint;
    }
    
    /**
     * 但し書きを設定する。
     @param finePrint 但し書き
     */
    public void setFinePrint(String finePrint) {
        this.finePrint = finePrint;
    }

    /**
     * この領収書全体を表示する。
     */
    public void show() {
        // print "領収書", 改行
        System.out.println("領収書");
        // print (支払人) + "様", 改行
        System.out.println(getPayerName() "様");
        // print "¥" + (合計金額) + ".-", 改行
        System.out.println("¥" + getTotalAmount() ".-");
        // print "(但し、" + (但し書き) + "として)", 改行
        System.out.println("(但し、" + getFinePrint() "として)");
        // print "確かに領収いたしました。", 改行
        System.out.println("確かに領収いたしました。");
        // print "          " + (発行者), 改行
        System.out.println("          " + getIssuerName());
    }
    
    /**
     * サンプルプログラム。
     @param args 無視される
     */
    public static void main(String[] args) {
        HogeBooksAcquittance acq = new HogeBooksAcquittance();
        acq.setTotalAmount(5000);
        acq.show();
    }
}