Sobes.tech
Junior

Em que consiste o conceito de encapsulamento na programação?

sobes.tech IA

Resposta da IA

O sentido da encapsulação na programação consiste em combinar dados e métodos para trabalhar com eles num único objeto e ocultar a implementação interna do mundo exterior. Isto permite controlar o acesso aos dados, protegê-los de alterações incorretas e simplificar a manutenção do código, tornando-o mais modular e flexível.

As principais vantagens da encapsulação:

  • Ocultação de dados: O estado interno do objeto é acessível apenas através de métodos específicos (getters e setters).
  • Controle de acesso: Pode aplicar lógica de validação ao modificar os dados.
  • Redução do acoplamento: As mudanças na implementação interna de um objeto não requerem alterações em outros objetos que o utilizam, desde que a interface de interação permaneça inalterada.
  • Melhoria na manutenção: O código torna-se mais compreensível e fácil de modificar.

Exemplo em JavaScript:

class User {
  constructor(name, age) {
    this._name = name; // Propriedade privada (convencional, não obrigatória em JS até campos privados)
    this._age = age;
  }

  getName() { // Getter para name
    return this._name;
  }

  getAge() { // Getter para age
    return this._age;
  }

  setAge(newAge) { // Setter para age com validação
    if (newAge > 0) {
      this._age = newAge;
    } else {
      console.error("A idade deve ser maior que zero.");
    }
  }
}

const user = new User("Ivan", 30);
console.log(user.getName()); // Acesso através do getter: Ivan
user.setAge(31); // Alteração através do setter com validação
console.log(user.getAge()); // Acesso através do getter: 31
user.setAge(-5); // Erro ao tentar alteração incorreta