Considere o seguinte código Java, escrito em um arquivo chamado
TesteContaProtegida.java
public class TesteContaProtegida {
public static void main(String[] args) {
Conta conta = new Conta();
conta.saldo = 1_000_000_000;
System.out.println(conta.saldo);
}
}
class Conta {
/* ___ */ double saldo;
void sacar(double qtd) {
saldo = saldo - qtd;
}
void depositar(double qtd) {
saldo += qtd;
}
}
Nesse código, a classe Conta não encapsula o atributo saldo e, portanto, não o protege de
alterações diretas, sem o uso de métodos, como, por exemplo, o método main() altera
diretamente o saldo da conta sem ter feito nenhum saque ou depósito. A palavra-chave da
linguagem que pode ser colocada no lugar da lacuna representada por /* ___ */ no código
acima, de modo a causar um erro de compilação nas linhas que tentam acessar
conta.saldo diretamente e, portanto, devidamente encapsular esse atributo é