解答例 - j2.lesson05.Prism

package j2.lesson05;

/**
 * 課題1801 - 解答例.
 * 直角柱を表すクラス.
 @author arakawa
 @version $Id: Prism_java.rps,v 1.1 2006/03/06 12:56:15 java2005 Exp $
 */
public class Prism {
    
    /** 底面を表す. */
    private final Polygon base;
    
    /** 高さを表す. */
    private final double height;

    /**
     * 底面と高さを指定して、直角柱を作成する。
     @param base この直角柱の底面
     @param height この直角柱の高さ
     */
    public Prism(Polygon base, double height) {
        super();
        this.base = base;
        this.height = height;
    }

    /**
     * この直角柱の体積を計算する。
     * 直角柱の体積は、<code>底面積 * 高さ</code>で計算できる。
     @return この直角柱の体積
     */
    public double volume() {
        return this.base.area() this.height;
    }
    
    /**
     * この直角柱の表面積を計算する。
     * 直角柱の表面積は、<code>底面積 * 2 + 底面の各辺の長さ * 高さ</code> 
     @return この直角柱の表面積
     */
    public double surfaceArea() {
        return this.base.area() this.base.perimeter() this.height;
    }
    
    /**
     * この直角柱の文字列表現を取得する。
     * 形式は &quot;Prism(&quot; + base + &quot;,&quot; + height + &quot;)&quot;
     @return この直角柱の文字列表現
     */
    public String toString() {
        return "Prism(" this.base + "," this.height + ")";
    }
}