-3

所以我得到了Graph.java文件并且有一个方法(那里有更多的东西):

public Graph(double y, int gr, String title, double vidurkis, double trend) {
   grooms = gr;
}

并且这个 Graph 方法在这个 Graph.java 文件中不再提及。现在修饰变量后变为= gr = 30。并且30从未在此提及Graph.java。所以我想这个方法是从其他文件中调用的,对吧?

现在有 BrideInSwing.java 文件,并且还使用了 Graph 方法:

if (which == 1){
   graphic = new Graph((Math.floor(((d_bride+d_groom) * 3 + divorce) * 10)) / 10, grooms, "Number of grooms: " + grooms + "; bride distribution: " + d_bride + "; grooms distribution: " + d_groom, pr_vidurkis, trend);               
} else {
   graphic = new Graph((Math.floor((d_bride + d_groom) * 3 * 10)) / 10, grooms, "Number of grooms: " + grooms + "; bride distribution: " + d_bride + "; grooms distribution: " + d_groom, pr_vidurkis, trend);
}  

那么据我了解,这调用了带有Graph.java文件中对应参数的 Graph 方法?如果是这样,那么为什么这里给出的参数比Graph.java文件中只有 5 个的参数多:y, gr, title, vidurkis, trend.

或者我在这里完全错过了什么?谢谢。

4

3 回答 3

3

您对代码的分析实际上并不太远。

您的图形方法是一个构造函数,一种用于创建新对象的方法。我建议阅读面向对象的编程并做一两个教程来让你站稳脚跟。

我做了一些快速的谷歌搜索,发现这个教程,应该是你的小巷。

于 2012-12-17T21:09:00.353 回答
2

它不是一种方法,它是一种constructorGraph它使用给定的初始化参数(在第二个代码中给出)创建一个新的类对象。

您可以重载构造函数,多个构造函数,每个构造函数采用不同数量/类型的参数。编译器将选择满足指定参数列表的构造函数(如果没有可用的,则抛出编译器错误)。

以上所有方法也适用于常规方法。

于 2012-12-17T21:09:45.333 回答
2

根据定义,公共方法旨在从类的外部调用(它们也可以从内部调用,但如果这是唯一的目标,则该方法应该是私有的)。

但是,此方法不是方法,而是构造函数。

它使用 5 个参数调用:

  1. Math.floor(((d_bride+d_groom)*3+divorce)*10))/10,
  2. grooms,
  3. "Number of grooms: "+grooms+"; bride distribution: "+d_bride+"; grooms distribution: "+d_groom,
  4. pr_vidurkis,
  5. trend

您的代码中最令人不安的是构造函数接受 5 个参数,但对其中的 4 个没有任何作用。要么应该使用参数,要么应该删除它们。

于 2012-12-17T21:11:52.183 回答