将值发送到JAVA中另一个类中的另一个方法

时间:2012-12-30 10:56:23

标签: java methods

抱歉,我是java的新手。我想将mark1传递给方法计算器中的类Exam,但是我得到了一些错误,我怎么能这样做程序说incompatibe类型。我该怎么办?

我想从这个方法发送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();

    }
}

6 个答案:

答案 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编码约定以及如何选择返回类型。

希望这会有所帮助。