Encapsulamento
Encapsulamento é um dos princípios fundamentais da programação orientada a objetos. Refere-se à ideia de que os dados (geralmente variáveis) dentro de um objeto devem ser protegidos e acessados apenas através de métodos de um objeto. Em JavaScript, o encapsulamento pode ser alcançado usando funções construtoras e closures.
Aqui está um exemplo de encapsulamento em JavaScript:
function ContaBancaria(saldoInicial) {
var saldo = saldoInicial; // Variável privada, encapsulada dentro do construtor
this.getSaldo = function() {
return saldo;
};
this.depositar = function(valor) {
saldo += valor;
console.log("Depósito de " + valor + " feito. Novo saldo: " + saldo);
};
this.sacar = function(valor) {
if (saldo >= valor) {
saldo -= valor;
console.log("Saque de " + valor + " feito. Novo saldo: " + saldo);
} else {
console.log("Saldo insuficiente para saque.");
}
};
}
var minhaConta = new ContaBancaria(1000);
minhaConta.depositar(500); // Saída: Depósito de 500 feito. Novo saldo: 1500
minhaConta.sacar(200); // Saída: Saque de 200 feito. Novo saldo: 1300
console.log(minhaConta.saldo); // Saída: undefined (não pode acessar saldo diretamente)
console.log(minhaConta.getSaldo()); // Saída: 1300 (usando o método getSaldo para acessar o saldo)
Neste exemplo, saldo
é uma variável privada que só pode ser acessada pelos métodos dentro da função ContaBancaria
. Esses métodos (getSaldo
, depositar
e sacar
) são públicos e acessíveis a partir de fora do objeto. Dessa forma, o saldo é encapsulado e protegido de acesso direto.
Encapsulamento é útil porque permite controlar como os dados são acessados e modificados, proporcionando maior segurança e flexibilidade no seu código.