Зачем нам нужен конструктор копирования и когда мы должны использовать конструктор копирования в Java
Я проходил через Конструкторы Копирования, прошел через ссылки в стеке над потоком и другие. Но я не уверен в следующих моментах.
Зачем нам нужен конструктор копированияКогда нам нужен конструктор копированияЯ имею в виду, в какой именно ситуации или сценарии нам нужно использовать конструктор копирования. Может кто-нибудь объяснить с помощью примера или указать ссылки, чтобы я мог пройти и понять их в чистом виде.
Ниже приведены ссылки, через которые я прошел, чтобы понять, что такое конструктор копирования.
http://www.programmerinterview.com/index.php/java-questions/how-copy-constructors-work/
https://deepeshdarshan.wordpress.com/2013/12/05/copy-constructors-in-java/
Вторая ссылка объясняет «почему» и «где» должен использоваться конструктор копирования. Но все же я не уверен в этом.
Ниже мой класс Employee.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;
}
}
Конструктор копирования используется для создания и точной копии объекта с теми же значениями существующего объекта.
Скажем, например, у нас есть сотрудник со значениями какrollNo: 1
а такжеname: avinash
, Конструктор Копии создаст подобный объект со значениями какrollNo: 1
а такжеname: avinash
, Но оба являются двумя разными объектами, и изменение значений объекта не повлияет на другой объект.
Вопрос здесь
Когда у нас есть конструктор, такой как
public Employee(String rollNo, String name){
this.rollNo = rollNo;
this.name = name;
}
создать объект. Мы можем вызвать тот же конструктор, чтобы создать другой объект. Но зачем нам вызывать конструктор копирования. Когда нам нужно вызывать его? Пожалуйста, объясни