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

Tipos de construtores

Olá, eu não vi o tipo de construtor que eu vejo nas classes de widgets do Flutter, qual a diferença de usar assim, quando e porque utilizar dessa forma?

class Person {  
  final String _name;  
  final int _age;  
  Person({String? name, int? age}) 
    : _name = name!,
    _age = age!;
}
2 respostas

Não seria apenas uma particularidade da linguagem do Dart?

solução!

Oi Gisele! Tudo certo?

Desculpe a demora c:

Então seguinte, esse código que você criou ele está usando os conceitos de Getter e Setter. Getter e Setter são estruturas de privacidade em orientação a objetos.

Pera pera pera, o que? Que frase mais complicada Kako!

Em muitos momentos, precisamos deixar nosso código mais seguro, ou seja, impedir que alterações sejam feitas sem necessidade ou sem permissão. uma variável idade por exemplo, pode ser chamada por qualquer um e alterada... Isso pode te dar uma dor de cabeça eventualmete. Para resolver esse problema, nós criamos privacidade para nossas variáveis, e no Dart para deixar uma variável privada basta adicionar _ ao inicio do nome. Isso indica à linguagem que a _idade não poderá ser alterada por externos ao código especifico.

Ta, e o que tem a ver isso com Getter e Setter?

Uma vez que nossas variaveis tem essa camada de proteção, precisamos ter alguns passos a mais para pegar ( getter ) os valores da variavel e para alterar (setter) esses mesmos valores.

No seu código:

class Person {  
  final String _name;  
  final int _age;  
  Person({String? name, int? age}) 
    : _name = name!,
    _age = age!;
}

name e age são recebidos pelo construtor (quando criado/instanciado o valor é dado) e logo em seguida esses valores são associados às variaveis privadas da Classe: _name e _age

Por fim, esse ! é vindo no Null Safety, garantindo que os valores são diferentes de nulo ao serem associados às variáveis.

Uffa, espero ter ajudado c:

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