Java:将属性从一个对象实例复制到另一个对象实例
发布时间:2020-12-15 05:17:49 所属栏目: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(
说你有
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的引擎是引用相同的Engine实例,还是当我执行car2.setEngine(car1.getEngine())时,它会自动生成car1.getEnginer()的深层副本并设置为car2? 解决方法
CAR1 —————> ENG1
car2.setEngine(car1.getEngine()); 结果是 car1 —————> eng1< ------------------ car2 从而指向相同的引擎实例 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |