调用静态无效方法

时间:2012-10-12 22:00:11

标签: java

我还在学习使用方法,但是我在路上遇到了另一个残障。我试图在另一个静态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.

我觉得因为无法调用方法而感到非常愚蠢,但我现在已经坚持这个问题大约两个小时了。

2 个答案:

答案 0 :(得分:3)

如果它无效,则无法将其分配给任何内容。

只需使用

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

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

答案 1 :(得分:2)

您需要提供两个参数。第一个需要是int[][]类型(earth符合条件),第二个需要是int。所以,例如:

plusPeople(earth, 27);

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

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