有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

面向对象Java如何处理对象引用?

如果在不同的类中引用一个实例化的对象,那么更改是更新到实际对象还是仅更新到引用

public class First {
     List<String> numbers;
     public First(){
         this.numbers.add("one");
         this.numbers.add("two");
     }
}

public class Second{
     First InstanceOfFirst;
     public Second(First F){
           this.InstanceOfFirst = F;
     }
     public void printList(){
          for(String s : this.InstanceOfFirst.numbers){
               System.out.print(i+", ");
          }
     }
}

public class Third {
     First Reference;
     public Third(First F){
         this.Reference = F;
     }
     public void Update(){
         this.Reference.numbers.add("three");
     }
}

假设我的主要长相如下:

public static main(String args[]){
    First F = new Frist();
    Second sec = new Second(F);
    Third  th = new Third(F);
    th.Update();
    sec.printList();
}

我会得到one, twoone, two, three作为结果

我想我想问的是:当像这样引用对象时,Deos Java会制作不同的对象副本,还是它们指向同一个对象

如果我的问题含糊不清,请原谅


共 (1) 个答案

  1. # 1 楼答案

    你有一个指向同一个对象的引用,所以它的结果是one, two, three。通过以这种方式传递实例,可以实现基本的单例模式(通过让一个主类保存这些实例)

    Java是按值传递的,但对于对象,它传递该对象的引用的值