我想从这个方法发送mark1:
public float SendMark(){
Exam ex = new Exam();
for (int i=0; i<students.length; i++) {
mark1 = students[i].getMark();
}
return ex.Calculator(mark1);
}
到这个类和方法计算器......但是它说不兼容的类型...对于这个方法我要总结数组值并获得数组值的平均值...这是正确的方法吗?我应该在这里写些什么......?请帮我详细说明谢谢......
public class Exam {
public Calculator (float mark1) {
AddList ad = new AddList();
}
}
答案 0 :(得分:1)
您缺少方法计算器的返回类型。
public Calculator (float mark1)
应该是
public float Calculator (float mark1)
答案 1 :(得分:0)
您的Calculator
方法没有return语句,其签名(方法标题)不声明返回类型。
此外,我无法看到您声明mark1
的位置,您只在for
循环中初始化它。
同时,我也发现了一个逻辑错误,mark1
将始终发送数组中的最后一个得分,因为它的值会在循环中被重复覆盖;只有最后一个值存活。
答案 2 :(得分:0)
当您不需要返回类型时,键入void method_name(args)
,就像在C中一样。Void
是无返回类型的占位符。其次,你的代码比其他新手更好,但你仍然有很多不必要的细节,这意味着你没有自己调试。更好地本地化问题(删除不必要的一切来重现)。专家们可以立即更快地查看您的问题。您甚至可以自己看到或猜测它。否则,如果不学习本地化错误,您将永远不会成为程序员。并且不必要地垃圾了。
答案 3 :(得分:0)
您的代码中存在一些小问题:
通常方法名称应以java代码约定中的小写字母开头
for
方法中SendMark
循环的作用是什么?只是多次覆盖一个浮点变量?
在您的评论中,您提到您想要Exam.Calculator
方法打印结果,但没有返回值。然后,您应该将void
作为返回类型添加到方法Calculator()
。
如果您不希望Calculator()
方法有任何返回值,为什么return ex.Calculator(mark1)
方法中SendMark()
,并且类型是浮点数?
答案 4 :(得分:0)
从我对你的问题的理解,这是我的答案。
public float **s**endMark(){
Exam ex = new Exam();
for (int i=0; i<students.length; i++) {
mark1 = students[i].getMark(); //this does not make any sense.
}
//Since you insisted that you wanted to only print, just call the calculator method and do not return anything. change the return type of calculator method to void.
ex.Calculator(mark1);
return "something";//since your method's definition says so
}
public class Exam {
public void **c**alculator (float mark1) {
//Do your stuff
}
}
您可能还想查看sun java的编码约定。
答案 5 :(得分:0)
其中一种方法是将学生数组传递给计算器,并在内部计算器方法中迭代学生总结标记 marks = marks + students [i] .getMark()和avg = marks / students.length
其他可能是,用标记=标记+学生[i] .getMark()形成标记我的主要方法,然后将标记和长度传递给计算器方法以计算平均值。
另请参阅java编码约定以及如何选择返回类型。
希望这会有所帮助。