- LinguagensJava
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação a Objetos: Encapsulamento
- Paradigmas de ProgramaçãoOrientação a ObjetosOrientação à Objetos: Modificadores de Acesso
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 é
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 é