JAVA 赋值和运算符

标签 java arrays oop operators assignment-operator

下面的代码打印出15 15,但我希望它打印出12 15。修复方法似乎正在更新 a1,使其包含 3,7,5,而不是 3,4,5。有谁知道为什么会这样吗?

class PassA 
{
    public static void main(String [] args) 
{
    PassA p = new PassA();
    p.start();
}

void start() 
{
    long [] a1 = {3,4,5};
    long [] a2 = fix(a1);
    System.out.print(a1[0] + a1[1] + a1[2] + " ");
    System.out.println(a2[0] + a2[1] + a2[2]);
}

long [] fix(long [] a3) 
{
    a3[1] = 7;
    return a3;
}
}

最佳答案

看看下面

 long[] fix(long[] a3) { // a3=a1 and a1= {3,4,5}
    a3[1] = 7; // a3[1]=7 means a1[1] will become 7(a1[1]=7), now a1={3,7,5}
    return a3;// return a1
}

关于JAVA 赋值和运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28065153/

相关文章:

php - 如何获取多维数组所有可能的组合

java - 我的电磁 java 应用程序的明智的 OO 设计? (有点数学)

java - 如何查看页面输出的java错误?

java - 确定当前光标的大小

c++ - 为什么必须动态分配扩展数组才能使该函数正常工作 C++

c++ - 如何清除堆上分配的未使用数组的整个内存

oop - Map 和 SortedMap - 冗余方法声明

java : passing array of reference?

java - JFileChooser 作为 JDialog 父级

java - Dijkstra algorithm alternatives - graph, bus routes 中的最短路径