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

对于getCount,使static int每个构造函数递增的 a 。

对于getAverageLength,将static int每个构造函数添加到的行的总和除以计数。

于 2013-02-25T00:50:50.393 回答
0

代码有几个问题。首先,建议在注释中记录方法应该做什么。这将对您和其他人有所帮助。二、这些方法:

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

getLength私有成员变量可能命名错误。我怀疑意图是一个名词,例如lengthwhilegetLength()是一种旨在返回 current 的方法length。此方法采用原始int数据类型来设置double. 这是故意的吗?看起来是个误会。此外,它没有任何功能,因为它只是将getLength(同样,应该是length)变量设置为方法的返回值,而方法getLength()又返回 的值getLength。这是一个补救逻辑和基本数学问题:A = 1 = getLength() = A = 1

public static int getCount() {

    return 0;
}

为什么这个方法会返回零以外的任何值?

公共静态 int getAverageLength() {

return 0;

}

同样在这里......基本的逻辑问题。

我不会在论坛上发布此类问题,因为它在提出问题之前缺乏做基本功课。

于 2013-02-25T01:01:14.400 回答
0

构建一个HashMap<MyLine, Integer> Integer 是 MyLine 的长度。

您只需将MyLine要计算的那些对象放入该地图中。

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

然后你可以计算你想要的一切。

于 2013-02-25T01:08:09.020 回答