我尝试过像c(过程)那样的置换方法,但是它没有起作用,我也不明白为什么它必须是静态的。
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);
}}
发布于 2019-04-08 20:12:41
您的“永久不变”方法在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中声明此方法为静态方法,则需要创建类的实例并调用该对象上的方法。不能在静态上下文中调用非静态方法。
https://stackoverflow.com/questions/55580969
复制相似问题