-2

長方形を表すクラスを作成するプログラムを作成しようとしています。長方形は、coordinates (x, y)左上隅と幅と高さによって指定されます。このクラスは、多くの四角形オブジェクトを作成するために使用されます. また、次の機能を備えている必要があります:

  • x、y、幅、高さを小数として格納する動的フィールド (変数)。
  • x、y、幅、高さを提供するパラメーターを持つコンストラクター。
  • 長方形の面積を返す関数。
  • 長方形の周囲の長さを返す関数。と
  • カンマで区切られた一対の括弧内の 4 つの数値である四角形の文字列表現を返す関数。この関数には という名前を付ける必要がありますtoString()

• コマンド ライン引数として 4 つの数値を受け取り、長方形オブジェクトをインスタンス化し、長方形、面積、周長の文字列表現を出力する main メソッドを別のクラスに記述します。

出力は次のようになります。

$ java TestRect 1 2 3 4
rectangle = (1.0, 2.0, 3.0, 4.0)
area = 12.0
perimeter = 14.0
$

これは私がこれまでに持っているものです

public class TestRect {

public static void main(String[] args) {


  double base = 0;
  double height = 0;
  double area = 0;
  double perimeter = 0;


  base = Double.parseDouble(args[0]);

  height = Double.parseDouble(args[1]);

  area = (base * height);

  perimeter = 2 * (base + height);



  System.out.println("The Area of Rectangle is : "
              + area);

  System.out.println("The Perimeter of Rectangle is : "
              + perimeter);

   }

}

toString 部分の実行方法がわかりません。また、x、y 部分が何であるかもわかりません。これに関するヘルプは大歓迎です。

4

1 に答える 1

0

オブジェクト指向プログラミングも初めてですか?あなたがしたことはACプログラムに似ているからです(実際にはほとんどそうです...)

main() メソッドにロジックを任せてはいけません。これはクラスのメソッドに含まれている必要があります。

次のようにビルドしてみてください。

public class TestRect {

  private double base;
  private double height;
  private double area;
  private double perimeter;

  public TestRect (double base, double height) {
     this.base = base;
     this.height = height;
     getPerimeter;
     getArea;
  }

  public double getPerimeter () {
     perimeter = 2 * (base + height);
     return perimeter;
  }

  public double getArea () {
     area = (base * height);
     return area;
  }

  @Override
  public String toString() {
     // TODO Auto-generated method stub
     // here you can create a string just as you want it to look like
     return yourCreatedString;
  }

  public static void main(String[] args) {

      TestRect test = new TestRect(3.0, 4.0);
      System.out.println(test.toString());
   }

}

オブジェクト指向の概念についても読む必要があるかもしれません...ここ

于 2013-08-14T13:32:32.430 に答える