Java - 对象引用其他对象

时间:2017-02-19 03:45:45

标签: java object

对Java中的对象引用有点困惑。据我所知,当我说:

Obj objA = new Obj();
Obj objB = objA;

我正在为objA分配objB 引用。所以,如果我改变其中一个,我会改变另一个。这实际上就是它如何与Arrays一起使用。假设我将Boolean[] a = {false, false}传递给以下方法:

Boolean[] test(Boolean[] a){
    Boolean[] b = a; //Array object = Array object
    b[0] = true;
    System.out.println("In method:");
    for(int i=0;i<a.length;i++){
        System.out.printf("%d ", a[i]?1:0);
    }
    System.out.println();
    return a;
}

返回时,a[0]现在是真的。但是说我把同样的事情传递给:

Boolean[] test2(Boolean[] a){
    Boolean[] b = new Boolean[2];
    b[0] = a[0];  //Boolean obj = Boolean obj
    b[0] = true;
    System.out.println("In method:");
    for(int i=0;i<a.length;i++){
        System.out.printf("%d ", a[i]?1:0);
    }
    System.out.println();
    return a;
}

如果我现在退回,a[0]仍然是假的。 (如果我说b = new Boolean(true);,它的工作方式相同)但有什么区别?在这两种情况下我都说Object = Object。为什么引用在第一个工作但不在第二个工作?此外,有没有办法获得相同的功能,其中一个单元格引用另一个单元格引用另一个单元格的方式?

0 个答案:

没有答案