为什么我们需要复制构造函数,以及何时应该在Java中使用复制构造函数?

复制构造函数是参数化的构造函数,当我们要将一个对象的值复制到另一个对象时可以使用它。

例:

class Employee {
   int id;
   String name;

   Employee(int id, String name)
   {
      this.id = id;
      this.name = name;
   }
   Employee(Employee e)
   {
      id = e.id;
      name = e.name;
   }
   void show()
   {
      System.out.println(id + " " + name);
   }
   public static void main(String args[])
   {
      Employee e1 = new Employee(001, "Aditya");
      Employee e2 = new Employee(e1);
      e1.show();
      e2.show();
   }
}

在上面的代码中,e1作为参数传递给第二个构造函数。因此,e1的值被复制到对象e2中。

输出:

1 Aditya
1 Aditya