Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Instancia da Transferencia

Oi, pessoal, tudo bem?

Na classe ItemTransferencia, por que quando criamos a instancia do tipo Transferencia fazemos assim?

final Transferencia _transferencia;

Nao teriamos que atribuir a essa referencia um objeto do tipo Transferencia antes de usa-la? Algo do tipo final Transferencia _transferencia = new Transferencia();?

Nao sei se perdi algo na explicacao/entendi mal mas fiquei um pouco confuso com isso. Obrigado!

1 resposta
solução!

Olá Vinicius, tudo bem com você?

Nao teriamos que atribuir a essa referencia um objeto do tipo Transferencia antes de usa-la? Algo do tipo final Transferencia _transferencia = new Transferencia();?

Então, o primeiro ponto é que estamos dizendo que esse objeto sera instanciado pelo construtor quando fazemos:

  ItemTransferencia(this._transferencia);

Então teoricamente quando criarmos o ItemTransferenciateoricamente já iremos estar atribuindo uma referência do tipo Transferencia para a nossa variável

Se fizéssemos final Transferencia _ transferencia = new Transferencia()

Teríamos um problema, pois a transferência é final, portanto, imutável, e dentro do construtor iriamos tentar passar outro valor ( dado que quando fizemos new Transferencia() atribuímos um valor), o que geraria um erro de compilação :)

Agora um outro comentário em relação ao Dart, apenas uma dica da linguagem :)

Não é recomendado utilizar a palavra reservada newpara criar instâncias de objeto, é uma das "regrinhas" do Dart Effective":

  • DON’T use new.

Então em um código normal, por exemplo quando criamos uma instância de transferência o correto, é fazer:

Transferencia transf = Transferencia()

ou até:

final transf = Transferencia()

Isso pode parecer estranho de primeiro momento, mas quando estamos criando os widgets como Column, Row estamos instanciando classes e nunca utilizamos o new, então para as nossas próprias classes de modelo, o ideal é evitar também :)

Conseguiu Compreender?

Abraços e Bons Estudos!