第11章最初の質問(トライアングルクラス)(トライアングルクラス)
-
11.1(Triangleクラス)GeometricObjectクラスを継承するTriangleという名前のクラスを設計します。このカテゴリには次のものが含まれます。
- side1、side2、side3という名前の3つのダブルタイプのデータフィールドは、この三角形の3つの辺を表し、デフォルト値は1.0です。
- 引数なしの構築方法では、デフォルトの三角形が作成されます。
- 指定されたside1、side2、およびside3の値を持つ三角形を作成するための構築方法。
- 3つのデータフィールドすべてのアクセサメソッド。
- getArea()というメソッドは、三角形の面積を返します。
- getPerimeter()というメソッドは、三角形の周囲を返します。
- toString()というメソッドは、三角形の文字列の説明を返します。
三角形の面積を計算するための式については、プログラミング演習2.19を参照してください。toString()メソッドの実装は次のとおりです
。return "Create on" + super.getDateCreated()+ "\ ncolor:" + super.getColor()+ "\ nArea:" + this.getArea()+ "\ nPerimeter: "+ this.getPerimeter();
TriangleクラスとGeometricObjectクラスのUMLダイアグラムを描画し、これらのクラスを実装します。三角形の3つの辺、色、および三角形が塗りつぶされているかどうかを示すブール値を入力するようにユーザーに求めるテストプログラムを作成します。プログラムは、入力に基づいて指定された辺を持つ三角形を作成し、カラーレイカー塗りつぶし属性を設定する必要があります。プログラムは、面積、周囲、色、および塗りつぶすかどうかを示す真または偽の値を表示する必要があります。
11.1(Triangleクラス)geometricobjectクラスを継承するtriangleという名前のクラスを設計します。このカテゴリには次のものが含まれます。- side1、side2、side3という名前の3つのdoubleデータフィールドは、三角形の3つの辺を表し、デフォルト値は1.0です。
- デフォルトの三角形を作成するノンパラメトリック構築法。
- 指定されたside1、side2、およびside3の値を持つ三角形を作成するための構築方法。
- 3つのデータドメインすべてのアクセサメソッド。
- getarea()というメソッドは、三角形の面積を返します。
- getperimeter()と呼ばれるメソッドは、三角形の周囲長を返します。
- tostring()というメソッドは、三角形の文字列の説明を返します。
三角形の面積を計算する式は、プログラミング演習2.19を参照してください。tostring()メソッドは次のように実装されます:
return "Create on" + super.getDateCreated()+ "\ ncolor:" + super.getColor()+ "\ nArea:" + this.getArea()+ "\ nPerimeter: "+ this.getPerimeter();
三角形クラスとgeometricobjectクラスのUMLダイアグラムを描画し、これらのクラスを実装します。テストプログラムを作成し、三角形の3つの辺、色、および三角形が塗りつぶされているかどうかを示すブール値を入力するようにユーザーに求めます。プログラムは、入力に応じて指定されたエッジを持つ三角形を作成し、色で塗りつぶされたプロパティを設定する必要があります。プログラムは、面積、周囲長、色、および塗りつぶすかどうかを示す真または偽の値を表示する必要があります。 -
参照コード:
package chapter11;
public class Code_01 {
public static void main(String[] args) {
Triangle triangle = new Triangle();
System.out.println(triangle.toString());
}
}
class SimpleGeometricObject {
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
public SimpleGeometricObject() {
dateCreated = new java.util.Date();
}
/** Construct a geometric object with the specified color
* and filled value */
public SimpleGeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor() {
return color;
}
/** Set a new color */
public void setColor(String color) {
this.color = color;
}
/** Return filled. Since filled is boolean,
its get method is named isFilled */
public boolean isFilled() {
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled) {
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated() {
return dateCreated;
}
/** Return a string representation of this object */
public String toString() {
return "created on " + dateCreated + "\ncolor: " + color + " and filled: " + filled;
}
}
class Triangle extends SimpleGeometricObject{
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle(){
super();
side1 = side2 = side3 = 1.0;
}
public Triangle(double side1,double side2,double side3){
super();
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1(){
return side1;
}
public double getSide2(){
return side2;
}
public double getSide3(){
return side3;
}
public double getArea(){
double p = (side1 + side2 + side3) / 2;
return Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
}
public double getPerimeter(){
return side1 + side2 + side3;
}
@Override
public String toString(){
return "Create on " + super.getDateCreated() + "\ncolor: " + super.getColor() + "\nArea: " + this.getArea() + "\nPerimeter: " + this.getPerimeter();
}
}
- 結果は次のことを示しています。
Create on Tue Oct 27 08:46:41 CST 2020
color: white
Area: 0.4330127018922193
Perimeter: 3.0
Process finished with exit code 0