加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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 从而指向相同的引擎实例

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读