Qual é a diferença entre o construtor de cópia e o operador de atribuição

Índice:

Anonim

o principal diferença entre o construtor de cópia e o operador de atribuição é que construtor de cópia é um tipo de construtor que ajuda a criar uma cópia de um objeto já existente sem afetar os valores do objeto original, enquanto o operador de atribuição é um operador que ajuda a atribuir um novo valor a uma variável no programa.

Um construtor é um método especial que ajuda a inicializar um objeto ao criá-lo. Ele tem o mesmo nome que o nome da classe e não tem tipo de retorno. Um programador pode escrever um construtor para fornecer valores iniciais às variáveis ​​de instância na classe. Se não houver construtor no programa, o construtor padrão será chamado. O construtor de cópia é um tipo de construtor que ajuda a criar uma cópia de um objeto existente. Por outro lado, o operador de atribuição ajuda a atribuir um novo valor a uma variável.

Construtor, Construtor de Cópia, Operador de Atribuição, Variável

O que é o Construtor de Cópia

Na programação, às vezes é necessário criar uma cópia separada de um objeto sem afetar o objeto original. O construtor de cópia é útil nessas situações. Permite criar uma replicação de um objeto existente da mesma classe. Consulte o exemplo abaixo.

Figura 1: Programa com construtor de cópia

A classe Triangle tem duas variáveis ​​de instância chamadas base e height. Na linha 8, existe um construtor parametrizado. São necessários dois argumentos. Esses valores são atribuídos às variáveis ​​de instância base e altura. Na linha 13, há um construtor de cópia. Leva um argumento do tipo Triângulo. O valor de base do novo objeto é atribuído à base de variável de instância. Da mesma forma, o valor da altura do novo objeto é atribuído à variável de instância height. Além disso, existe um método chamado calArea para calcular e retornar a área.

No método principal, t1 e t2 são objetos Triângulo. O objeto t1 é passado ao criar o objeto t2. O construtor de cópia é chamado para criar o objeto t2. Portanto, a base e a altura do objeto t2 são iguais à base e a altura do objeto t1. Finalmente, ambos os objetos têm a mesma área.

O que é o Operador de Atribuição

Um operador de atribuição é útil para atribuir um novo valor a uma variável. O operador de atribuição é “=”. Quando há uma afirmação como c = a + b; a soma de 'a' e 'b' é atribuída à variável 'c'.

Figura 2: Programa com operador de atribuição

A classe Number possui uma variável de instância chamada num. Não há um construtor sem parâmetro na linha 7. No entanto, há um construtor parametrizado na linha 9. Ele pega um argumento e o atribui à variável de instância usando o operador de atribuição. Na linha 12, existe um método chamado display para exibir o número. No método principal, num1 e num2 são dois objetos do tipo Number. Imprimir num1 e num2 fornece as referências a esses objetos. O num3 é do tipo Number. Na linha 24, num1 é atribuído a num3 usando o operador de atribuição. Portanto, num3 está se referindo ao objeto num1. Portanto, imprimir num3 fornece a referência num1.

O operador de atribuição e suas variações são as seguintes.

Operador

Funcionalidade

Exemplo

=

Atribui o operando direito ao operando esquerdo

z = x + y

+=

Adicione o operando direito ao operando esquerdo e atribua o resultado ao operando esquerdo

z + = y é equivalente a z = z + y

– =

Subtraia o operando direito do operando esquerdo e atribua o resultado ao operando esquerdo.

z - = y é equivalente a

z = z -y

* =

Multiplique o operando direito pelo operando esquerdo e atribua o resultado ao operando esquerdo.

z * = y é equivalente a

z = z * y

/=

Divide o operando esquerdo com o operando direito e atribui a resposta ao operando esquerdo.

z / = y é equivalente a

z = z / y

%=

Pega o módulo de dois operandos e atribui a resposta ao operando esquerdo.

z% = y é equivalente a

z = z% y

<<=

Deslocamento à esquerda E operador de atribuição

z << 5 é equivalente a

z = z << 5

>>=

Deslocamento à direita E operador de atribuição

z >> 5 é equivalente a

z = z >> 5

&=

Operador de atribuição AND bit a bit

z & = 5 é equivalente a

z = z & 5

^=

OR exclusivo bit a bit e operador de atribuição

z ^ = 5 é equivalente a

z = z ^ 5

|=

OR inclusivo bit a bit e operador de atribuição

z | = 5 é equivalente a z = z | 5

Diferença entre o construtor de cópia e o operador de atribuição

Definição

O construtor de cópia é um construtor especial para criar um novo objeto como uma cópia de um objeto existente. Em contraste, o operador de atribuição é um operador usado para atribuir um novo valor a uma variável. Essas definições explicam a diferença básica entre o construtor de cópia e o operador de atribuição.

Funcionalidade com objetos

A funcionalidade com objetos também é uma diferença importante entre o construtor de cópia e o operador de atribuição. O construtor de cópia inicializa o novo objeto com um objeto já existente, enquanto o operador de atribuição atribui o valor de um objeto a outro objeto que já existe.

Uso

O construtor de cópia ajuda a criar uma cópia de um objeto existente, enquanto o operador de atribuição ajuda a atribuir um novo valor a uma variável. Esta é outra diferença entre o construtor de cópia e o operador de atribuição.

Conclusão

A diferença entre o construtor de cópia e o operador de atribuição é que o construtor de cópia é um tipo de construtor que ajuda a criar uma cópia de um objeto já existente sem afetar os valores do objeto original, enquanto o operador de atribuição é um operador que ajuda a atribuir um novo valor a uma variável no programa.

Referência:

1. Thakur, Dinesh. “Copiar Construtor no Exemplo de Java.” Notas do computador, disponíveis aqui.

Qual é a diferença entre o construtor de cópia e o operador de atribuição