Java 调用方法对integer无效

Java 调用方法对integer无效,java,Java,为什么下面的代码输出6而不是20 public class ClassA { public static void main (String [] args ) { int k = 5; doub ( k ); doub ( k ); if ( k <= 19) { k ++; } System. out . println ( k ); } pu

为什么下面的代码输出6而不是20

public class ClassA {
    public static void main (String [] args ) {
        int k = 5;
        doub ( k );
        doub ( k );
        if ( k <= 19) {
            k ++;
        }
        System. out . println ( k );
    }
    public static void doub (int x ) {
        x *= 2;
    }
}

提前感谢。

因为方法中的对象与原始K是不同的对象,所以需要获取double以返回结果并将K设置为该结果

公共静态int-doubint x{return x*2}

K=doubk

试试看

public class ClassA {
    public static void main (String [] args ) {
        int k = 5;
        k = doub ( k );
        k = doub ( k );
        if ( k <= 19) {
            k ++;
        }
        System. out . println ( k );
    }

    public static int doub (int x ) {
       return x *= 2;
    }
}

为什么你期望20个?这可能是一个更好的方法:我建议结束这个问题,因为它显然与Java通过引用传递或通过值传递有关抱歉,编辑,因为我缺少第二个函数,方法中有一个原语,而不是一个对象。。。例如,如果它是一个可变对象,那么它实际上可以使用AtomicInteger。。。。