3
respostas

O 2ª construtor serve para estanciar Carro sem informar o ano. OK?

Olá!

Por favor, confirmem se entendi direito:

No exemplo de reaproveitamento de construtores, o benefício de manter o segundo construtor ( que referencia o primeiro) é poder estanciar um Carro sem informar o ano e ter a garantia de que as regras de modelo e preço serão seguidas e que o ano será 2017.

É isso?

Para mim ficou um pouco confuso porque não manter somente o primeiro construtor, que já garante que todas as propriedades estarão corretas ou com valor default.

Obrigada

3 respostas

Oi Ana,

Acredito que se mantiver apenas 1 construtor, todos os 3 parâmetros serão exigidos.

O segundo construtor seria usado quando apenas dois parâmetros fossem informados.

Se alguém puder corrigir, agradeço.

Boa noite Ana,

Como explicado no exemplo, o objetivo do segundo construtor seria poder instanciar um objeto da classe Carro sem informar o ano. No primeiro construtor, éramos obrigados a informar um valor para o atributo ano sempre que fossemos instanciar um objeto da classe Carro, porém como foi solicitado que fosse possível instanciar um objeto da classe Carro sem informar o ano, foi criado o segundo construtor onde é necessário somente informar modelo e preço, passando o ano com o valor 2017. O segundo construtor chama o primeiro construtor passando o ano 2017, e os dois parâmetros recebidos, deste modo não é preciso implementar todas as regras de negócio novamente. Apenas isso. Espero ter ajudado =D

Olá, sim Ana.

Eu também achei um pouco confuso, mas depois de usar bastante percebi que isso dá uma melhor clareza caso outra pessoa esteja lendo o seu código, uma vez que ao ver uma Classe com 2 parâmetros, poderia achar que todas essas classes são assim. Mas ao ler o construtor, o programador que ver o seu código já irá saber que há a possibilidade da construção com menos parâmetros.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software