u19*_*964 3 java reference object deep-copy shallow-copy
说你有
public class Car{
private Engine m_eng;
public Car(){
}
public Engine getEngine(){
return m_eng;
}
public void setEngine(Engine engine){
m_eng = engine;
}
}
public class Engine{
private String m_name;
public Engine(){};
public Engine(String name){ m_name = name;}
public String getName(){
return m_name;
}
public void setName(String name){
m_name = name;
}
}
public static void main(String[] args){
Engine eng1 = new Engine("abc");
Car car1 = new Car();
car1.setEngine(eng1);
Car car2 = new Car();
car2.setEngine(car1.getEngine());
}
Run Code Online (Sandbox Code Playgroud)
问题:car1和car2的引擎是引用相同的Engine实例,还是当我这样做时car2.setEngine(car1.getEngine())
,它会自动生成car1.getEnginer()的深层副本并设置为car2?
CAR 1 ---------------> ENG1
car2.setEngine(car1.getEngine());
Run Code Online (Sandbox Code Playgroud)
结果是
car1 ---------------> eng1 <------------------ car2
从而指向相同的引擎实例
归档时间: |
|
查看次数: |
1318 次 |
最近记录: |