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

[Dúvida] E o encapsulamento?

Bom, não sei se foi tão rápido, mas não vi esse conceito.

2 respostas
solução!

Oi, Gustavo! Tudo bem?

Seguindo essa formação: A partir do zero: crie projetos em Dart, a linguagem utilizada no Flutter, você chegará em um curso que falará sobre:

Mas vou falar sobre um pouco agora:

O encapsulamento é um dos pilares da orientação a objetos e é um conceito fundamental para proteger os dados e a integridade dos objetos em um programa. Em Dart, o encapsulamento é implementado principalmente através do uso de modificadores de acesso e getters/setters.

Para entender melhor, vamos a um exemplo prático:

class Pessoa {
  String _nome; // O underline torna o atributo privado
  int _idade; // O underline torna o atributo privado

  // Construtor
  Pessoa(this._nome, this._idade);

  // Getter para nome
  String get nome => _nome;

  // Setter para nome
  set nome(String nome) {
    if (nome.isNotEmpty) {
      _nome = nome;
    }
  }

  // Getter para idade
  int get idade => _idade;

  // Setter para idade
  set idade(int idade) {
    if (idade > 0) {
      _idade = idade;
    }
  }
}

void main() {
  var pessoa = Pessoa('João', 30);
  print(pessoa.nome); // João
  print(pessoa.idade); // 30

  pessoa.nome = 'Maria';
  pessoa.idade = 25;
  print(pessoa.nome); // Maria
  print(pessoa.idade); // 25
}

Neste exemplo, _nome e _idade são atributos privados (indicados pelo underline _), e só podem ser acessados diretamente dentro da classe Pessoa. Para acessar e modificar esses atributos de fora da classe, utilizamos os getters e setters. Isso permite controlar como os dados são acessados e modificados, garantindo que certas regras sejam seguidas (por exemplo, não permitir que a idade seja negativa).

Espero ter ajudado.

Um abraço e bons estudos.

Obrigado!!!