复制构造器:
1.提供了比clone 方法更好的解决办法。
2.可以被更好地implements。
3.直接提取出参数,注入到普通构造器中。
4.对于不可变的对象,复制构造器是没什么用的。
示例:
public class ComplexNumber {
private double a;
private double b;
public ComplexNumber(double a, double b) {
this.a = a;
this.b = b;
}
public ComplexNumber(ComplexNumber complexNumber){
this(complexNumber.getA(), complexNumber.getB());
}
public double getA() {
return a;
}
public double getB() {
return b;
}
public void setA(double a) {
this.a = a;
}
public void setB(double b) {
this.b = b;
}
public static void main(String[] args){
ComplexNumber c1 = new ComplexNumber(1,2);
ComplexNumber c2 = new ComplexNumber(c1);
c2.setA(3);
System.out.println("c1:"+c1.getA()+" "+c1.getB());
System.out.println("c2:"+c2.getA()+" "+c2.getB());
}
}
运行结果:
c1:1.0 2.0
c2:3.0 2.0