为什么我们需要复制构造函数,什么时候应该在java中使用复制构造函数
我正在浏览复制构造函数,我已经浏览了堆栈中的链接,而不是流和其他链接。但我不清楚以下几点。
- 为什么我们需要一个复制构造函数
- 我们什么时候需要复制构造函数
我的意思是我们需要使用复制构造函数的确切情况或场景是什么。有人可以用一个例子来解释或指出链接,这样我就可以清楚地了解和理解它们。
以下是我通过的链接,以了解什么是复制构造函数。
http://www.programmerinterview.com/index.php/java-questions/how-copy-constructors-work/
https://deepeshdarshan.wordpress.com/2013/12/05/copy-constructors-in-java/
第二个链接解释了“为什么”和“在哪里”使用复制构造函数。但我仍然不清楚。
下面是我的班级员工.java
package com.test;
/**
* @author avinashd
*
*/
public class Employee {
private String rollNo;
private String name;
//constructor
public Employee(String rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
//copy constructor
public Employee(Employee employee){
this.rollNo = employee.rollNo;
this.name = employee.name;
}
public String getRollNo() {
return rollNo;
}
public void setRollNo(String rollNo) {
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
复制构造函数用于创建具有与现有对象相同的值的对象的精确副本。
例如,假设我们有一个员工,其值为 和 。复制构造函数将创建一个类似的对象,其值为 和 。但是两者都是2个不同的对象,对on对象的值的更改不会影响另一个对象。rollNo: 1
name: avinash
rollNo: 1
name: avinash
这里的问题是
当我们有一个构造函数时,例如
public Employee(String rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
以创建对象。我们可以调用同一构造函数来创建另一个对象。但是为什么我们需要调用复制构造函数。我们什么时候需要调用它?请解释