0

この問題の最終製品を視覚化するのに問題があります。

オブジェクトが物事を数えるCounterというクラスを定義します。このクラスのオブジェクトは、非負の整数であるカウントを記録します。カウンターを0に設定し、カウントを1増やし、カウントを1減らすメソッドを含めます。カウンターの値が負になるメソッドがないことを確認してください。現在のカウント値を返すアクセサメソッドと、カウントを画面に出力するメソッドを含めます。インプットメソッドや他のミューテイターメソッドがあってはなりません。カウンターを設定できる唯一の方法は、カウンターをゼロに設定する方法です。また、toStringメソッドとequalsメソッドを含めます。クラス定義内のすべてのメソッドをテストするプログラムを作成します。

誰かが私のためにこの問題をよりよく説明できますか?

4

2 に答える 2

4

クラスを定義するコードを記述します。クラスの名前はCounter。(考えてみてください。これはファイル名について何を意味しますか?publicテストに使用できるように、これをクラスにする必要があることに注意してください。)ACounterは物事を数えるために使用されます(驚くことではありません)。

これを行うために、クラスの各インスタンスには「count」値が含まれます。(考えてみてください:この値の適切な名前は何ですか?インスタンスに属するクラスのインスタンスごとに個別の値を作成するにはどうすればよいですか?)値は負であってはなりません。(明らかです。どうすれば負の数になることができますか?)値が負にならないようにする必要があります(リモートで通常の方法で作業している場合、これは自動的に発生するはずです)。

クラスは次の機能を提供する必要があります。

  • カウント値を0に設定するメソッド(考えてみてください:このメソッドの適切な名前は何ですか?publicもちろん、他のコードがクラスを使用する方法の一部であるため、そうする必要があります。考えてみてください:このためのパラメーターは必要ですか?方法?もしそうなら、何?)

  • カウントを1つ増やす方法(上記のように考えてください)。

  • カウントを1減らす方法(上記のように考えてください。また、カウントが負にならないように、カウントがすでに0の場合はどうなりますか?この場合の対処方法を決定してください。)

  • 現在のカウント値を返すメソッド。(これは「アクセサ」と呼ばれます)。

  • 現在のカウント値を表示するメソッド。(注:これはデザイン的には非常に悪い考えですが、割り当てにはそれが必要です。ヒント:System.out画面に出力する方法の1つを使用してください。)

  • toStringカウンタの文字列表現を返すと呼ばれるメソッド。これはパラメータをとるべきではなく、文字列を返す必要があります。(これは、Javaのほとんどのオブジェクトが提供する標準の機能です。考えてみてください。カウント値以外に、文字列に含める必要のあるものはありますか?)

  • equalsカウンタを別のカウンタと比較して等しいかどうかを確認するために呼び出されるメソッド。booleanこのメソッドは、正確に1つのパラメーターであるCounterインスタンスを受け取り、2つのCounterが等しいかどうかを示す指標を返す必要があります。(考えてみてください:2つのカウンターが「等しい」かどうかを決定するものは何ですか?)

このクラスは、次の機能を提供しないでください。

  • カウンターの値を変更するその他の方法(特に、標準入力から値を読み取る方法ではありません)。

Counterいくつかのインスタンスを作成し、それらのメソッドを使用するプログラムを作成します。Counterプログラムは、メインプログラムを読んだときに期待するものと一致する出力を生成することにより、クラスが期待どおりに動作することを証明する必要があります。(ヒント:これはJavaであるため、このプログラムにはメソッドを含む別のクラスが必要です。別のファイルに入れてください。メインプログラムが他のファイルでクラスを見つけられるように、 andステートメントpublic static void main(String[] args)をいじる必要がある場合があります。 Javaクラスをコンパイルして実行する方法を必ず理解してください。)packageimportCounter

于 2011-10-22T05:43:45.107 に答える
0

最終製品は、問題で説明されているメソッドを持つクラスです。おそらく、いくつかのサンプルデータでプログラムが期待どおりに機能することを確認するためのテストプログラムも提供する必要があります。

于 2011-10-22T05:33:04.870 に答える