首页 > 解决方案 > 你好,Java中的置换方法

问题描述

我已经尝试过类似 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);


}

}

标签: java

解决方案


您的“置换”方法也不起作用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 中将此方法声明为静态,则需要创建类的实例并调用该对象上的方法。您不能在静态上下文中调用非静态方法。


推荐阅读