Encapsulamento em Java: Getters e Setters

Encapsulamento em Java: Getters e Setters

Encapsulamento é um dos quatro pilares fundamentais da programação orientada a objetos (POO), juntamente com a herança, polimorfismo e abstração. No Java, o encapsulamento é uma maneira de proteger e controlar o acesso aos dados de um objeto. A ideia é que um objeto deve ter controle total sobre como suas informações são acessadas ou modificadas, e isso é feito através da utilização de métodos getter e setter.

O que são Getters e Setters?

Getters e Setters são métodos públicos que servem, respectivamente, para obter (get) ou definir (set) o valor de uma variável privada de uma classe. O uso de getters e setters permite que o acesso aos dados seja feito de forma controlada, possibilitando, por exemplo, a validação dos dados antes de serem atribuídos a uma variável.

Por que usar Getters e Setters?

  • Ocultação de Dados: Você pode esconder os detalhes internos da implementação da classe e expor apenas os métodos necessários para o uso externo.
  • Validação: Ao definir um valor, você pode incluir lógica de validação para garantir que o dado esteja correto.
  • Flexibilidade: Se a maneira como os dados são armazenados mudar, você pode manter a mesma interface pública, o que significa que o código que usa a classe não precisará ser alterado.

Exemplo de Encapsulamento com Getters e Setters

Vamos considerar uma classe Pessoa que possui dois atributos privados: nome e idade. O encapsulamento desses atributos é feito através da implementação de métodos getters e setters.


public class Pessoa {
    private String nome;
    private int idade;

    // Construtor da classe
    public Pessoa(String nome, int idade) {
        this.nome = nome;
        this.idade = idade;
    }

    // Getter para o nome
    public String getNome() {
        return nome;
    }

    // Setter para o nome
    public void setNome(String nome) {
        this.nome = nome;
    }

    // Getter para a idade
    public int getIdade() {
        return idade;
    }

    // Setter para a idade
    public void setIdade(int idade) {
        if (idade > 0) {
            this.idade = idade;
        } else {
            System.out.println("Idade inválida!");
        }
    }
}

No exemplo acima, os métodos setNome e setIdade são responsáveis por definir os valores de nome e idade, respectivamente. O método setIdade contém uma simples validação para garantir que a idade não seja um valor negativo.

Boas Práticas ao Usar Getters e Setters

  • Os nomes dos métodos getters e setters devem seguir o padrão de nomenclatura do Java, começando com get seguido pelo nome do atributo com a primeira letra maiúscula para getters, e set seguido pelo nome do atributo com a primeira letra maiúscula para setters.
  • Getters devem ser métodos somente de leitura, ou seja, eles não devem modificar o estado do objeto.
  • Setters podem incluir lógica de validação para garantir que os dados estejam corretos antes de serem atribuídos aos atributos.
  • Considere tornar imutáveis os atributos que não precisam ser alterados após a criação do objeto. Isso é feito não fornecendo métodos setters para esses atributos.

Considerações Finais

O encapsulamento é uma técnica essencial na programação orientada a objetos, e a implementação correta de getters e setters é um dos meios para alcançá-lo. Ao encapsular os dados de uma classe, você aumenta a segurança e a robustez do seu código, facilita a manutenção e promove uma interface clara e consistente para os usuários da classe.

Embora o uso de getters e setters seja uma prática comum, é importante lembrar que eles não são uma solução universal. Em alguns casos, pode ser mais apropriado usar outros métodos ou padrões de design para acessar e modificar os dados de um objeto. No entanto, para a maioria das situações, especialmente para quem está aprendendo Java e os conceitos de POO, entender e aplicar corretamente getters e setters é um passo fundamental no desenvolvimento de software.

Com este conhecimento em mãos, você está agora mais preparado para criar classes Java bem encapsuladas e seguras, seguindo as melhores práticas de programação orientada a objetos.

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

_Qual dos seguintes itens NÃO é uma boa prática ao usar getters e setters em Java, conforme o texto fornecido?

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

Você errou! Tente novamente.

Imagem do artigo Sintaxe básica de Java: Herança

Próxima página do Ebook Gratuito:

14Sintaxe básica de Java: Herança

5 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto