我已经尝试过像c(procedure)一样的置换方法,但是它不起作用,我也不明白为什么它必须是静态的
public class permute {
public static void permute(int a,int b){
int x=a;
a=b;
b=x;
}
public static void main(String[] args){
int a=2;int b=4;
System.out.println("a= "+a+"b= "+b);
permute(a,b);
System.out.println("a= "+a+"b= "+b);
}
}
答案 0 :(得分:-1)
您的“置换”方法在C
中也不起作用。 C和Java均为pass by value
。
您仅在该方法中本地交换变量。交换的值未反映在这些变量的调用方副本中。
对于C,使用指针。
void permute(int * a, int * b)
。
对于Java,请使用Integer对象而不是原始int。
public static void permute(Integer a, Integer b)
最后,如果您不希望在Java中将此方法声明为静态,则需要创建类的实例,然后在该对象上调用该方法。您不能在静态上下文中调用非静态方法。