4.9. Sintaxe básica de Java: Encapsulamento (Getters e Setters)

Página 13

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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

144.10. Sintaxe básica de Java: Herança

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text