با استفاده از Copy constructor شما می توانید از یک شئ موجود یک کپی بگیرید (یک شئ کاملا جدید). کاربرد اصلی Copy constructor برای ایجاد اشیاء immutable است و بصورت زیر پیاده سازی می شود:
class Complex {
private double re, im;
// A normal parametrized constructor
public Complex(double re, double im) {
this.re = re;
this.im = im;
}
// copy constructor
Complex(Complex c) {
System.out.println("Copy constructor called");
re = c.re;
im = c.im;
}
}
همانطور که مشاهده می کنید Copy constructor یک constructor معمولی است که یک شئ از جنس همان کلاس را می گیرد و یک جدید از همان کلاس و کاملا شبیه همان شئ قبلی ایجاد می کند.