Say you have
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());
}
Question: are the engine of car1 and car2 referring to the same instance of Engine, or when I do car2.setEngine(car1.getEngine())
, it automatically make a deep copy of car1.getEnginer() and set to car2 ?