面向对象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, two
或one, two, three
作为结果
我想我想问的是:当像这样引用对象时,Deos Java会制作不同的对象副本,还是它们指向同一个对象
如果我的问题含糊不清,请原谅
# 1 楼答案
你有一个指向同一个对象的引用,所以它的结果是
one, two, three
。通过以这种方式传递实例,可以实现基本的单例模式(通过让一个主类保存这些实例)Java是按值传递的,但对于对象,它传递该对象的引用的值