复制构造器:
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