编写一种计算长度/平均值的方法

时间:2013-02-25 00:35:10

标签: java class methods

我正在尝试用我需要的所有方法编写一个类,但是我很难弄清楚如何使用这些方法确定所需的值。我遇到麻烦的是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;
}

}

3 个答案:

答案 0 :(得分:1)

对于getCount,创建一个由每个构造函数递增的static int

对于getAverageLength,使用每个构造函数添加的行的总和创建一个static int,并将其除以计数。

答案 1 :(得分:0)

代码有几个问题。 首先,建议记录评论中应该做的方法。 这将有助于您和他人。 其次,这些方法:

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

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

getLength

为什么预期从此方法返回除零以外的任何内容?

public static int getAverageLength(){

public static int getCount() {

    return 0;
}

}

同样......基本的逻辑问题。

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

答案 2 :(得分:0)

构建HashMap<MyLine, Integer> 整数是MyLine的长度。

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

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

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