调用方法的格式

时间:2014-10-10 19:01:14

标签: java arrays methods return double

我对Java的经验非常有限,而且我无法实现从其他来源获得的一堆类。

我正在尝试使用以下Java包中的calculateMutualInformation():https://github.com/Craigacp/JavaMI

关联的java文档描述了如下方法:

public static double calculateMutualInformation(double[] firstVector,
                                            double[] secondVector)

如果您想查看doc文件,请访问:http://www.cs.man.ac.uk/~pococka4/JavaMI/index.html 我正在尝试使用DoubleTrouble.java中的以下代码将两个数组传递给此函数:

package JavaMI;
 public class DoubleTrouble { 
  public static double calculateMutualInformation()
  {
   double[] firstVector = {0, 1, 2, 0, 1, 0, 2, 0, 0, 0, 2, 0, 2, 0, 0, 1, 0};
   double[] secondVector = {1, 2, 0, 1, 2, 1, 0, 1, 2, 1, 0, 1, 0, 1, 2, 0, 2};
   //return ??
  }
 }

以上数据只是占位符,但是,我似乎不明白如何调用此方法。我得到一个丢失的返回错误,我尝试放入的任何类型的return语句都会出错(大多数情况下我错过了“.class”)。我还尝试将变量作为方法的参数,但这往往会产生更多错误。

这个方法或男人(我)有什么问题吗?我也试过从包中调用其他方法,比如MutualInformation(),再次无济于事。另外,我应该提一下,我编译了JavaMI包中的所有java文件;不确定是否有必要。

2 个答案:

答案 0 :(得分:0)

public static double calculateMutualInformation()

  • public:表示方法可以从任何地方看到
  • static:表示无需调用该方法的实例,即允许DoubleTrouble.calculateMutualInformation()
  • double:表示该方法返回double

另一个例子:

// returns a double
public double sum(double a, double b) { return a+b; } 

// doesn't return anything
public void something(double a, double b) { System.out.println(a+b); } 

另见this tutorial方法定义

答案 1 :(得分:0)

您尝试实施的方法必须接受2个参数:

double[] firstVectordouble[] secondVectory

您目前正在做的是创建这两个变量 - 这是错误的。您的方法接收作为参数,而不是在您的方法中创建它们,然后使用它们来计算并返回一些double值,如下所示:

double mutualInformation = ... // compute for firstVector and secondVector

return mutualInformation;

您的方法定义应该更像这样:

public static double calculateMutualInformation(double[] firstVector, double[] secondVector) {
    double mutualInfo = ... // compute from firstVector and secondVector

    return mutualInfo; // returning type double as method head states
}