1

我仍在学习使用方法,但我在路上遇到了另一个障碍。我试图在另一个静态 void 方法中调用一个静态 void 方法。所以它大致看起来像这样:

public static void main(String[] args) {
....
}

//Method for total amount of people on earth
//Must call plusPeople in order to add to total amount of people
 public static void thePeople (int[][] earth) {
How to call plusPeople?
}

//Method adds people to earth
//newPerson parameter value predefined in another class.
public static void plusPeople (int[][] earth, int newPerson) {
earth = [newPerson][newPerson]
}

我尝试了一些没有真正奏效的不同方法。

int n = plusPeople(earth, newPerson); 
//Though I learned newPerson isn't recognized 
because it is in a different method.

int n = plusPeople(earth); \
//I don't really understand what the error is saying,
but I'm guessing it has to do with the comparison of these things..[]

int n = plusPeople;
//It doesn't recognize plusPeople as a method at all.

我什至无法调用方法而感到非常愚蠢,但我已经在这个问题上卡住了大约两个小时。

4

2 回答 2

3

如果它是无效的,则不能将其分配给任何东西。

只需调用使用

int n = 5;
plusPeople(earth, n);

你得到的第一个错误是因为 newPerson 没有在本地定义(你是对的,它使用不同的方法)你得到的第二个错误是因为返回类型“void”不是“int”。您得到的第三个错误是因为它没有括号,并且可能认为应该有一个名为 plusPeople 的变量。

于 2012-10-12T22:06:04.430 回答
2

您需要提供两个参数。第一个需要是类型int[][](和earth限定),第二个需要是 int。因此,例如:

plusPeople(earth, 27);

当然,这只是一个技术性的答案。您真正应该作为参数传递的内容取决于方法对其参数的作用(应在其 javadoc 中指定)、参数的含义(应在其 javadoc 中指定)以及您希望该方法为您做什么(你应该知道)。

另外,请注意,由于该方法被声明为void plusPeople(...),它不会返回任何内容。所以这样做int n = plusPeople(earth, newPerson);没有任何意义。

于 2012-10-12T22:07:14.483 回答