[解決済み] (Triangle クラス) GeometricObject を継承した Triangle というクラスを設計する。
質問
クラスが含まれています。
-
3つの ダブル というデータフィールドがあります。 サイド1 , サイド2 そして サイド3 をデフォルト値として使用します。 1.0 三角形の3辺を表す
-
を指定した三角形を作成する引数なしのコンストラクタです。 サイド1 , サイド2 と サイド3 .
-
3つのデータフィールドのアクセッサメソッド。
-
という名前のメソッドは getArea() は、この三角形の面積を返します。
-
という名前のメソッドは getPerimeter() は、この三角形の周囲長を返します。
*というメソッドがあります。 toString() は、三角形の説明を文字列で返す。
三角形の面積を計算する公式は、An introduction to java programming 9th edition の ProgrammingExercise 2.15() を参照してください。 は、その toString() メソッドは次のように実装されています。
三角形:side1 = " + side1 + " side2 = " + side2 + " side3 " + side3.Return "。
クラスの UML ダイアグラムを作成します。 トライアングル と ジオメトリックオブジェクト を作成し、そのクラスを実装する。三角形の3つの辺、色、および三角形が塗りつぶされるかどうかを示すブール値を入力するようユーザに促すテストプログラムを作成しなさい。このプログラムでは 三角形 オブジェクトにこれらの辺を設定し 色 と フィルド プロパティを入力する。プログラムは、面積、周囲長、色、および塗りつぶされているかどうかを示す真偽を表示する必要があります。
練習問題で困っているのは、テストプログラムの部分です。
もし、入力から三角形を作る方法について、ご指摘いただければ幸いです。
現在、私が持っているコードは次のとおりです。
GeometricObject
public class GeometricObject {
private String color = " white ";
private boolean filled;
private java.util.Date dateCreated;
public GeometricObject() {
dateCreated = new java.util.Date();
}
public GeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public String toString() {
return "Created on " + dateCreated + "\n color: " + color + " and filled ";
}
}
トライアングル・プログラム
public class Triangle extends GeometricObject {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle() {
}
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double setSide1() {
return side1;
}
public double setSide2() {
return side2;
}
public double setSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side2;
}
public double getArea() {
return (side1 + side2 + side3) / 2;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
}
テストプログラムです。
import java.util.Scanner;
public class TestTriangle {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
new Triangle(side1, side2, side3);
//How do i get the information into theTriangle?
System.out.println("The Triangle Sides are \n side 1: " + side1 + "\n Side 2: " + side2 + "\n Side 3: " + side3);
System.out.println("The Triangle's Area is " + (side1 + side2 + side3) / 2);
System.out.println("The Triangle's Perimeter is "
+ (side1 + side2 + side3));
System.out.println("The Triangle's Color is " + //what goes here?);
System.out.println("Is the Triangle filled? " + //what goes here?);
}
}
解決方法は?
を新規に作成する必要があります。
Triangle
を参照できるようにするため、このようなオブジェクトを作成します。
Trangle triangle = new Triangle(side1, side2, side3);
// ^^^^^^ This is the most important thing you're missing. You need a reference
// point for your object. That's the only way you can access it's
// properties.
また
filled
と
color
プロパティ
triangle.setFilled(filled);
triangle.setColor(color);
そして、そのメソッドを次のように呼び出すことができる。
System.out.println("The Triangle Sides are \n side 1: "
+ triangle.getSide1() + "\n Side 2: " + triangle.getSide2()
+ "\n Side 3: " + triangle.getSide3());
System.out.println("The Triangle's Area is " + triangle.getArea());
System.out.println("The Triangle's Perimeter is " + triangle.getPerimeter();
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
にアクセスできるようになりました。
GeometricObject
's
isFilled()
,
setFilled()
,
getColor()
および
setColor()
というのも
Triangle
は
GeometricObject
(
extends
) のすべてのメソッドを継承しています。
ちなみに、これは三角形の面積を計算する方法ではない。
public double getArea() {
return (side1 + side2 + side3) / 2; // This is so wrong
}
これをチェックする リンク 正しい計算式はこちら
編集:コードに別の問題がある場合
public double setSide1() {
return side1;
}
public double setSide2() {
return side2;
}
public double setSide3() {
return side3;
}
/**** Should Be ******/
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
編集:トライアングル・フォーミュラ
public double getArea() {
int p = getPerimeter() / 2
return Math.sqrt(p * ((p - side1) * (p - side2) * (p - side3));
}
関連
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】Javaの".class期待値"
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Javaを使用するSelenium - ドライバの実行ファイルのパスは、webdriver.gecko.driverシステムプロパティで設定する必要があります。
-
[解決済み】Javaの未処理例外について
-
[解決済み】Javaの".class expected "について
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] ベースクラスのコンストラクタを呼び出す際のルールは?
-
[解決済み】インプリメントとエクステンド。いつ使う?その違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】このコンパイルユニットは名前付きモジュールに関連しているため、名前付きパッケージeclipseを宣言する必要があります。
-
[解決済み] hibernateでResultSetを抽出できない。
-
[解決済み】-XX:MaxPermSizeは何をするのですか?
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】デフォルトのキーストアファイルが存在しない?
-
[解決済み】「java -cp」と「java -jar」の違い?
-
[解決済み] intellijが自動配線リポジトリにタイプのBeanが見つからないと不正確な発言をする件
-
[解決済み】破損したjarファイル
-
[解決済み】Javaで文字列をコピーするにはどうしたらいいですか?
-
[解決済み】Java Error "Exception in thread "main" java.util.InputMismatchException" Array プログラムで発生。