在代码中,在main中调用有什么区别?
input.reverseArray(input);
reverseArray(input);
input = reverseArray(input);
input =input.reverseArray(input);
最后,如果reverseArray不是静态的,这些是否适用?
public class reverse
{
public static void main(String args[])
{
int [] input = new int[]{4, 5, 8, 9, 10};
}
public static void reverseArray(int inputArray[])
{
int temp;
for (int i = 0; i < inputArray.length/2; i++)
{
temp = inputArray[i];
inputArray[i] = inputArray[inputArray.length-1-i];
inputArray[inputArray.length-1-i] = temp;
}
}
}
答案 0 :(得分:1)
input.reverseArray(input);
无法编译,因为reverseArray
不是由input
类型定义的方法,即int[]
。reverseArray(input);
编译并正常工作。input = reverseArray(input);
无法编译,因为reverseArray
会返回void
,因此无法将其分配给input
。input =input.reverseArray(input);
由于上述两个原因而无法编译。如果reverseArray
不是静态的,那么以上都不会编译。特别是,{em>静态方式从静态上下文(即来自reverseArray(input)
方法)调用static
(不使用对象作为在foo.reverseArray(input)
),但reverseArray
不是静态的。调用reverseArray
的方法是使用reverse
类型的对象,因为reverse
类定义了方法reverseArray
:
reverse myReverse = new reverse();
myReverse.reverseArray(input);
另请注意,根据Java约定,类应在CamelCase中命名,因此您应将reverse
更改为Reverse
。