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 + ")";
}
}
|