Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Dúvidas

Olá,

  1. Porque não está a usar os setters na classe Endereco?
  2. Teve de alterar a posição do require de Endereco e Titular, pois Titular precisa do Endereco. Mas o require de Conta está posicionado na primeira linha e Conta precisa de Titular e tudo o resto? Porque funciona ainda assim? Obrigado
3 respostas

Olá, Andre.

O curso foi gravado há algum tempo então não entendi sua dúvida. Você pode exemplificar aqui os códigos que te geraram confusão?

Dúvida 1:

Nesta aula implementou os métodos "get" para todos os atributos mas não implementou os métodos "set". Entretanto, já vou numa aula mais anvançada e tenho notado que é raro implementar métodos "set" e deixa sempre isso ao cargo do construtor? Porque opta por não implementar esses métodos "set"?

Dúvida 2:

Na explicação da aula tem o seguinte:

require_once 'src/Conta.php'; require_once 'src/Titular.php'; require_once 'src/CPF.php'; require_once 'src/Endereco.php';

Entretanto, uma nova execução continuará apresentando um erro. Isso porque, como nosso Titular precisa de um Endereco, este último precisará ser importado primeiro. Trabalhoso, não? Teremos uma solução mais elegante para isso no futuro, mas por enquanto simplesmente mudaremos a ordem das importações.

require_once 'src/Conta.php'; require_once 'src/Endereco.php'; require_once 'src/Titular.php'; require_once 'src/CPF.php';

A minha pergunta é no sentido de que se Conta precisa de um Titular, o Titular não deveria também ser importado primeiro, para funcionar?

Obrigado.

solução!

Resposta 1: Isso foi explicado no conceito de Imutabilidade. Se minha entidade não precisa ser alterada, ou não pode ser alterada, por que eu implementaria os métodos setters?

Resposta 2: Na verdade o erro só ocorreria se antes do momento da importação, a classe que ainda não foi importada tivesse sido realmente usada. Se eu tivesse tentado instanciá-la ou estender ela. No caso do vídeo, o erro era outro, como eu corrijo logo depois. Era onde eu coloquei o parâmetro do endereço lá no final, na última conta. :-)