| 
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() * 2 + this.base.perimeter() * this.height;
 }
 
 /**
 * この直角柱の文字列表現を取得する。
 * 形式は "Prism(" + base + "," + height + ")"
 * @return この直角柱の文字列表現
 */
 public String toString() {
 return "Prism(" + this.base + "," + this.height + ")";
 }
 }
 |