Скажем, у вас естьJava: копировать атрибуты из одного экземпляра объекта в другой?
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());
}
Вопрос: являются двигателем car1 и car2 со ссылкой на тот же экземпляр двигателя, или когда я car2.setEngine(car1.getEngine())
, он автоматически делает глубокую копию car1.getEnginer() и установите автомобиль2?
Вы можете проверить это с помощью '=='. –
Это тот же пример. Как сказал @SotiriosDelimanolis, вы можете легко протестировать его с помощью '=='. –
Если вы не сделали это намеренно, это, безусловно, не является глубокой копией на Java. –