Junior
O que mais a encapsulação inclui além de ocultar dados?
sobes.tech IA
Resposta da IA
Além de ocultar dados (esconder a implementação interna do objeto do mundo exterior), a encapsulação inclui:
- Combinar dados e métodos que trabalham com esses dados em um único objeto. Isso cria unidades de programa autossuficientes.
- Controle de acesso aos dados. Com os modificadores de acesso (
public,protected,private), determina-se como outros objetos podem interagir com o estado interno do objeto. Isso permite garantir a integridade dos dados e prevenir alterações incorretas. - Redução da coesão. Um alto nível de encapsulamento ajuda a que as mudanças dentro de um objeto tenham um impacto mínimo em outras partes do sistema.
Exemplo:
<?php
class BankAccount {
private $balance; // Escondemos os dados
public function __construct($initialBalance) {
if ($initialBalance >= 0) {
$this->balance = $initialBalance;
} else {
$this->balance = 0;
}
}
public function deposit($amount) {
if ($amount > 0) {
$this->balance += $amount; // Os métodos trabalham com os dados
}
}
public function withdraw($amount) {
if ($amount > 0 && $amount <= $this->balance) {
$this->balance -= $amount; // Controle de acesso e integridade
return true;
}
return false;
}
public function getBalance() {
return $this->balance; // Fornecemos acesso controlado
}
}
?>
Neste exemplo, a ocultação de dados (private $balance) combina-se com a disponibilização de métodos públicos (deposit, withdraw, getBalance) que controlam o acesso e as alterações a esses dados. Isso une dados e lógica em um único objeto e garante a encapsulação.