我还在学习使用方法,但是我在路上遇到了另一个残障。我试图在另一个静态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.
我觉得因为无法调用方法而感到非常愚蠢,但我现在已经坚持这个问题大约两个小时了。
答案 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);
没有任何意义。