¿Cuál es la diferencia entre Copia Constructor y Asignación de operador?

los diferencia principal entre el constructor de copia y el operador de asignación es que El constructor de copia es un tipo de constructor que ayuda a crear una copia de un objeto ya existente sin afectar los valores del objeto original, mientras que el operador de asignación es un operador que ayuda a asignar un nuevo valor a una variable en el programa.

Un constructor es un método especial que ayuda a inicializar un objeto al crearlo. Tiene el mismo nombre que el nombre de la clase y no tiene ningún tipo de retorno. Un programador puede escribir un constructor para dar valores iniciales a las variables de instancia en la clase. Si no hay ningún constructor en el programa, se llamará al constructor predeterminado. Copiar constructor es un tipo de constructor que ayuda a crear una copia de un objeto existente. Por otro lado, el operador de asignación ayuda a asignar un nuevo valor a una variable.

Áreas clave cubiertas

1. Qué es Copy Constructor
     - Definición, Funcionalidad
2. ¿Qué es el operador de asignación?
     - Definición, Funcionalidad
3. ¿Cuál es la diferencia entre Copia Constructor y Asignación de operador?
     - Comparación de diferencias clave

Términos clave

Constructor, Copia Constructor, Operador de asignación, Variable

Qué es Copy Constructor

En la programación, a veces es necesario crear una copia separada de un objeto sin afectar al objeto original. Copiar constructor es útil en estas situaciones. Permite crear una réplica de un objeto existente de la misma clase. Consulte el siguiente ejemplo.

Figura 1: Programa con copia constructor

La clase Triangle tiene dos variables de instancia llamadas base y altura. En la línea 8, hay un constructor parametrizado. Se necesitan dos argumentos. Estos valores se asignan a las variables de instancia base y altura. En la línea 13, hay un constructor de copia. Se necesita un argumento de tipo triángulo. El nuevo valor base del objeto se asigna a la base de la variable de instancia. De forma similar, el nuevo valor de altura del objeto se asigna a la altura de la variable de instancia. Además, existe un método llamado calArea para calcular y devolver el área..

En el método principal, t1 y t2 son objetos Triángulo. El objeto t1 se pasa al crear el objeto t2. El constructor de copia se llama para crear el objeto t2. Por lo tanto, la base y la altura del objeto t2 son las mismas que la base y la altura del objeto t1. Finalmente, ambos objetos tienen la misma área..    

¿Qué es el operador de asignación?

Un operador de asignación es útil para asignar un nuevo valor a una variable. El operador de asignación es "=". Cuando hay una declaración como c = a + b; la suma de 'a' y 'b' se asigna a la variable 'c'.

Figura 2: Programa con operador de asignación

El número de clase tiene una variable de instancia llamada num. No hay un constructor de parámetros en la línea 7. Sin embargo, hay un constructor parametrizado en la línea 9. Toma un argumento y lo asigna a la variable de instancia mediante el operador de asignación. En la línea 12, hay un método llamado pantalla para mostrar el número. En el método principal, num1 y num2 son dos objetos de tipo Number. La impresión num1 y num2 proporciona las referencias a esos objetos. El número 3 es de tipo Número. En la línea 24, num1 se asigna a num3 mediante el operador de asignación. Por lo tanto, num3 se refiere al objeto num1. Por lo tanto, la impresión num3 da la referencia num1.  

El operador de asignación y sus variaciones son los siguientes.

Operador

Funcionalidad

Ejemplo

=

Asigna el operando derecho al operando izquierdo

 z = x + y

+=

Agregue el operando derecho al operando izquierdo y asigne el resultado al operando izquierdo

z + = y es equivalente a z = z + y

- =

Reste el operando derecho del operando izquierdo y asigne el resultado al operando izquierdo.

z - = y es equivalente a

z = z -y

* =

Multiplica el operando derecho con el operando izquierdo y asigna el resultado al operando izquierdo.

z * = y es equivalente a

z = z * y

/ =

Divide el operando izquierdo con el operando derecho y asigna la respuesta al operando izquierdo.

z / = y es equivalente a

z = z / y

% =

Toma el módulo de dos operandos y asigna la respuesta al operando izquierdo.

z% = y es equivalente a

z = z% y

<<=

Turno izquierdo y operador de asignación

z << 5 is equivalent to

 z = z <<5

>> =

Desplazar a la derecha y operador

z >> 5 es equivalente a

 z = z >> 5

& =

Operador de asignación de bit y AND

z & = 5 es equivalente a

z = z & 5

^ =

Operador de asignación y OR exclusivo a nivel de bit

z ^ = 5 es equivalente a

z = z ^ 5

| =

Operador de asignación y OR inclusivo bit a bit

z | = 5 es equivalente a z = z | 5

Diferencia entre Copia Constructor y Asignación de Operador

Definición

Copiar constructor es un constructor especial para crear un nuevo objeto como una copia de un objeto existente. En contraste, el operador de asignación es un operador que se utiliza para asignar un nuevo valor a una variable. Estas definiciones explican la diferencia básica entre el constructor de copia y el operador de asignación.

Funcionalidad con objetos.

La funcionalidad con objetos también es una diferencia importante entre el constructor de copias y el operador de asignación. El constructor de copia inicializa el nuevo objeto con un objeto ya existente, mientras que el operador de asignación asigna el valor de un objeto a otro objeto que ya existe.

Uso

Copiar constructor ayuda a crear una copia de un objeto existente, mientras que el operador de asignación ayuda a asignar un nuevo valor a una variable. Esta es otra diferencia entre el constructor de copia y el operador de asignación.

Conclusión

La diferencia entre el constructor de copia y el operador de asignación es que el constructor de copia es un tipo de constructor que ayuda a crear una copia de un objeto ya existente sin afectar los valores del objeto original, mientras que el operador de asignación es un operador que ayuda a asignar un nuevo valor a una variable en el programa.

Referencia:

1. Thakur, Dinesh. "Copia del constructor en el ejemplo de Java". Notas informáticas, disponibles aquí.