-4

さて、私はこの Java プログラミングのすべてについてまったくの初心者であり、それに関する知識はほとんどありませんが、私の仕事のために、次のことを行います。

長方形を表すクラスを作成します。長方形は、左上隅の座標 (x, y) と幅と高さによって指定されます。このクラスは、多くの長方形オブジェクトを作成するために使用され、機能する必要があります

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

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

したがって、基本的に機能する場合は、次のようになります。

Java TestRect 1 2 3 4
長方形 = (1.0、2.0、3.0、4.0)
面積 = 12.0
周囲 = 14.0

わかりました、申し訳ありませんが、あなたの回答を読んだ後、いくつかの変更を加えました。

追加した

TestRect1 r = new TestRect1();

TestRect (メイン クラス)
に変更を加えました:

  System.out.println("rectangle = " + r.toString());
  System.out.println("area      = " + r.area(w, h));
  System.out.println("perimeter = " + r.perimeter(w, h));

TestRect1 (すべての数式を含む他のクラス) に、「静的」なものを取り除き、追加しました:

   public double x;
   public double y;
   public double w;
   public double h;

したがって、それらをコンパイルすると、両方ともコンパイルされ、エラーは発生しませんが、実際にプログラムを実行すると、入力した場所に

java TestRect 1 2 3 4

次のようなエラーが表示されます。

javac: invalid flag: 1
usage: javac <options> <source files>
use -help for a list of possible options
4

4 に答える 4

1

これは宿題なので、完全な答えを与えるべきではありません。クラスとは何か、クラスのインスタンスとは何かを明らかに学びました。

現在の問題は、実際に Rectangle クラスのインスタンスを作成していないことです。あなたが持っているのは、静的メソッドだけを持つ単純なクラスです。

したがって、正しい軌道に乗るためのヒントとして:

次のようなインスタンスを作成できるクラスが必要です。

Rectangle rect = new Rectangle(x,y,width,height);
于 2012-08-22T03:59:55.213 に答える
0

あなたは初心者なので、自分で書いてみることをお勧めします。質問がある場合は、コードで問題を投稿して、理解しやすいようにしてください。しかし、ちなみに、私は自分のソリューションの一部を投稿しているだけです。
まず、このクラス内で呼び出されるクラスを定義し、Rectangle1 つのコンストラクターと 3 つのメソッド
1. area(width,height)
2. perimeter(width,height)
3.@Override toString()メソッドを記述して、次のように記述します。

public String toString()  
{  
      return "("+x+","+y+","+width+","+height+")";  
} 

TestRect 1 2 3 4
以前の回答を探すこともお勧めするので、コマンドライン引数を取ります。これがお役に立てば幸いです。

于 2012-08-22T04:59:54.653 に答える
0

あなたは Java を学ぼうとしているので、完全なコードの投稿は差し控えます。代わりに、コードの問題を指摘させてください。

  1. 仕様の最初の 2 つの指示に従っていません。

x、y、幅、高さのクラスでメンバー変数を宣言します。これらの 4 つの変数を引数として受け取り、クラス メンバーをそれらに割り当てるコンストラクターを作成します。

  1. クラス内のすべてのメソッドは非静的であると宣言でき、これらの変数がクラス メンバーとして格納されているため、引数を取る必要はありません。
于 2012-08-22T03:56:20.847 に答える
0

あなたのTestRect1クラスは少し不足しています。

  • x、y、幅、および高さを表す 4 つのメンバー フィールドが必要です。
  • toString()メソッドはインスタンスメソッドである必要があり(あなたstaticが持っているようなメソッドではありません)、引数を取らないでください。フィールド値から文字列を構築する必要があります。
  • area()およびperimeter()メソッドも同様に、インスタンス メソッドに変更し、パラメーターを取らないようにする必要があります。

次に、main()メソッドを変更してオブジェクトを構築し、TestRect1そのメソッドとフィールドを使用して必要なことを行う必要があります。たとえば、TestRect1オブジェクトを取得したら、そのtoString()メソッドを呼び出すことができます。

TestRect1 rect;
// initialize rect
System.out.println("rectangle = " + rect.toString());
于 2012-08-22T03:56:32.447 に答える