0

メインに必要なすべてのメソッドを含むクラスを作成しようとしていますが、メソッドを使用して目的の値を確認する方法がわかりません。私が問題を抱えているのは、getAverageLength と getCount です。

現在の出力:

The length of Line 1 is 1.0
The length of Line 2 is 10.0
There are 0 lines and the average length is 0
The length of Line 1 is 1.0
The length of Line 2 is 10.0
The length of Line 3 is 7.0
There are 0 lines and the average length is 0

期待される出力:

The length of Line 1 is 1
The length of Line 2 is 10
There are 2 lines and the average length is 5.5
The length of Line 1 is 7
The length of Line 2 is 10
The length of Line 3 is 7
There are 3 lines and the average length is 8.0

これは、私が使用している私の主な方法の一部です。

public class TestParts {

public static void main(String[] args) {

     MyLine ml1 = new MyLine();
     MyLine ml2 = new MyLine(10);
     System.out.println("The length of Line 1 is " + ml1.getLength());
     System.out.println("The length of Line 2 is " + ml2.getLength());
     System.out.println("There are " + MyLine.getCount() +
     " lines and the average length is " + MyLine.getAverageLength());
     MyLine ml3 = new MyLine(7);
     ml1.setLength(7);
     System.out.println("The length of Line 1 is " + ml1.getLength());
     System.out.println("The length of Line 2 is " + ml2.getLength());
     System.out.println("The length of Line 3 is " + ml3.getLength());
     System.out.println("There are " + MyLine.getCount() +
     " lines and the average length is " + MyLine.getAverageLength());
    }
}

以下は、値を計算するために書いている別のクラスです。

class MyLine {
private double getLength;

MyLine() {
    getLength = 1;
}

double getLength() {
    return getLength;
}

MyLine(double setLength) {
    getLength = setLength;
}

public void setLength(int i) {
    getLength = getLength();
}

public static int getCount() {

    return 0;
}

public static int getAverageLength() {

    return 0;
}

}
4

3 に答える 3

1

の場合getCountstatic intコンストラクターごとにインクリメントされる を作成します。

の場合、各コンストラクターによって追加される行の合計で をgetAverageLength作成し、それをカウントで割ります。static int

于 2013-02-25T00:50:50.393 に答える
0

コードにはいくつかの問題があります。まず、メソッドが何をすべきかをコメントで文書化することをお勧めします。これはあなたと他の人を助けるでしょう。第二に、これらの方法:

public void setLength(int i) {
    getLength = getLength();
}

getLengthプライベート メンバー変数の名前が間違っている可能性があります。その意図は、現在の を返すことを目的としたメソッドであるのlengthに対して、このメソッドは、プリミティブデータ型を使用して の型を設定します。これは意図的なものでしたか?誤解のように見えます。さらに、(再び、 である必要があります) 変数を メソッド の戻り値に設定するだけなので、機能はありません。メソッドは の値を返します。これは修正ロジックと基本的な数学の問題です: A = 1 = getLength() = A = 1getLength()lengthintdoublegetLengthlengthgetLength()getLength

public static int getCount() {

    return 0;
}

このメソッドからゼロ以外が返されると予想されるのはなぜですか?

public static int getAverageLength() {

return 0;

}

ここでも同じ ... 根本的な論理の問題です。

この種の質問は、質問をする前に基本的な宿題をする必要がないため、フォーラムには投稿しません。

于 2013-02-25T01:01:14.400 に答える
0

build a HashMap<MyLine, Integer> Integer は MyLine の長さです。

MyLine数えたいオブジェクトをそのマップに入れるだけです。

{ml1:0, ml2:10, ml3:7}

その後、必要なすべてを計算できます。

于 2013-02-25T01:08:09.020 に答える