我已经尝试过像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);
}
}
您的"排列"方法在C
中也不起作用。C 和 Java 都是pass by value
。在该方法中,您只是在本地交换变量。交换的值不会反映在调用方的这些变量副本中。
对于 C,请使用指针。
void permute(int * a, int * b)
.
对于 Java,请使用 Integer 对象而不是 primitive int。
public static void permute(Integer a, Integer b)
最后,如果您不希望在 Java 中将此方法声明为 static,则需要创建类的实例并在该对象上调用该方法。不能在静态上下文中调用非静态方法。