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