Bom, não sei se foi tão rápido, mas não vi esse conceito.
Bom, não sei se foi tão rápido, mas não vi esse conceito.
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!!!