Capa do Ebook gratuito Aprenda programar em Java completo, da lógica de programação ao avançado

Aprenda programar em Java completo, da lógica de programação ao avançado

5

(1)

238 páginas

Estrutura de classes e objetos em Java: Encapsulamento

Capítulo 63

Tempo estimado de leitura: 4 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00

11.5 Estrutura de Classes e Objetos em Java: Encapsulamento

Em Java, o conceito de encapsulamento é um dos pilares fundamentais da programação orientada a objetos. Encapsulamento é a técnica de ocultar os detalhes de implementação de uma classe e expor apenas as funcionalidades necessárias para o mundo exterior. Isso é feito usando o controle de acesso aos membros de uma classe, que são principalmente variáveis e métodos. O encapsulamento ajuda a proteger os dados e a manter a integridade do objeto, além de tornar o código mais fácil de manter e evoluir.

O encapsulamento em Java é alcançado através de modificadores de acesso, que controlam a visibilidade das variáveis e métodos de uma classe. Os quatro modificadores de acesso em Java são:

  • private: O membro só pode ser acessado dentro da própria classe.
  • default (sem modificador): O membro pode ser acessado dentro do mesmo pacote.
  • protected: O membro pode ser acessado dentro do mesmo pacote ou por subclasses em pacotes diferentes.
  • public: O membro pode ser acessado de qualquer lugar.

Para entender melhor o encapsulamento, vamos considerar um exemplo de uma classe que representa um banco. Suponha que temos uma classe chamada ContaBancaria que possui um saldo como variável de instância.


public class ContaBancaria {
    private double saldo;

    public ContaBancaria(double saldoInicial) {
        if (saldoInicial > 0) {
            this.saldo = saldoInicial;
        }
    }

    public void depositar(double valor) {
        if (valor > 0) {
            saldo += valor;
        }
    }

    public boolean sacar(double valor) {
        if (valor > 0 && saldo >= valor) {
            saldo -= valor;
            return true;
        }
        return false;
    }

    public double getSaldo() {
        return saldo;
    }
}

Neste exemplo, a variável saldo é marcada como private, o que significa que ela não pode ser acessada diretamente de fora da classe ContaBancaria. Em vez disso, métodos públicos como depositar(), sacar() e getSaldo() são fornecidos para permitir que operações sejam realizadas no saldo de maneira controlada.

O método depositar() permite adicionar dinheiro ao saldo, mas apenas se o valor for positivo. O método sacar() permite retirar dinheiro, mas também verifica se o valor é positivo e se há saldo suficiente. O método getSaldo() é um "getter" que permite a outras classes obterem o saldo atual, mas sem a possibilidade de modificá-lo diretamente.

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo

Além disso, o construtor da classe ContaBancaria também impõe uma regra de que o saldo inicial deve ser maior que zero. Isso é parte do encapsulamento, pois garante que a conta bancária comece em um estado válido.

Encapsulamento também permite que a implementação interna de uma classe seja alterada sem afetar as classes que a utilizam. Por exemplo, se decidirmos mudar a forma como o saldo é armazenado ou calculado internamente na classe ContaBancaria, não precisaríamos modificar o código de outras classes que dependem dela, desde que os métodos públicos permaneçam os mesmos.

Outro aspecto importante do encapsulamento é que ele permite a criação de "setters", métodos que permitem modificar o valor de uma variável de instância de maneira controlada. Por exemplo, se quisermos permitir a alteração do saldo, poderíamos adicionar um método setSaldo() que incluiria validações antes de realmente alterar o valor.

Em resumo, o encapsulamento é uma prática essencial na programação orientada a objetos. Ele protege os dados de um objeto, mantém a integridade do objeto, facilita a manutenção e evolução do código e promove a reutilização do código. Ao projetar suas classes em Java, sempre aplique o encapsulamento para garantir um design de software robusto e confiável.

Para finalizar, é importante lembrar que o encapsulamento não é apenas sobre ocultar dados ou torná-los privados. Trata-se de definir uma interface clara e consistente para suas classes, o que torna seus objetos mais fáceis de entender e usar corretamente. O encapsulamento ajuda a prevenir o uso inadequado de uma classe e garante que as regras de negócio sejam aplicadas, tornando o software mais confiável e fácil de manter.

Agora responda o exercício sobre o conteúdo:

_Qual dos seguintes modificadores de acesso em Java permite que um membro de uma classe seja acessado apenas dentro da própria classe, conforme discutido no texto sobre encapsulamento?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

O modificador de acesso private permite que um membro de uma classe seja acessado apenas dentro da própria classe, garantindo o encapsulamento e a proteção dos dados.

Próximo capitúlo

Estrutura de classes e objetos em Java: Herança

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.