This question already has answers here:
Is Java “pass-by-reference” or “pass-by-value”?
                            
                                (88个答案)
                            
                    
                5个月前关闭。
        

    

为什么下面的代码打印出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 doub(int x){return x * 2}

K =杜布(k)

10-04 17:50