12.6. Encapsulamento e métodos acessores (getters e setters): Convenções de nomenclatura para getters e setters

Página 80

12.6 Encapsulamento e Métodos Acessores (Getters e Setters)

O encapsulamento é um dos quatro pilares fundamentais da programação orientada a objetos (POO), juntamente com a herança, a polimorfismo e a abstração. Encapsulamento é a prática de manter os campos (variáveis de instância) de uma classe privados e fornecer acesso a eles através de métodos públicos. Isso é feito para manter o controle sobre os valores que estão sendo definidos e obtidos, e para proteger a integridade dos dados mantidos pela classe.

Os métodos acessores, conhecidos como getters e setters, são a forma padrão de implementar encapsulamento em Java. Eles são métodos públicos que servem para obter (get) e definir (set) o valor de campos privados de uma classe.

Convenções de Nomenclatura para Getters e Setters

Em Java, há uma convenção de nomenclatura bem estabelecida para getters e setters que ajuda a manter o código legível, consistente e acessível para outras ferramentas e frameworks que dependem dessas convenções.

Para um campo chamado nome, por exemplo, o getter seria nomeado getNome() e o setter seria nomeado setNome(). Essa convenção se aplica a todos os campos, com algumas regras específicas para campos booleanos, onde o getter muitas vezes começa com is em vez de get, como isAtivo() para um campo chamado ativo.

Aqui estão as regras gerais para nomear getters e setters:

  • Getters: O método começa com a palavra get seguida pelo nome do campo com a primeira letra maiúscula. Se o campo for do tipo boolean, você também pode usar is em vez de get.
  • Setters: O método começa com a palavra set seguida pelo nome do campo com a primeira letra maiúscula.

Esses métodos devem ser marcados como públicos para que possam ser acessados de fora da classe. Além disso, o método setter geralmente retorna void e aceita um parâmetro do mesmo tipo do campo que está definindo, enquanto o getter retorna um valor do mesmo tipo do campo.

Exemplo de Implementação de Getters e Setters


public class Pessoa {
    private String nome;
    private int idade;
    private boolean ativo;
    
    // Getter para o campo nome
    public String getNome() {
        return nome;
    }
    
    // Setter para o campo nome
    public void setNome(String nome) {
        this.nome = nome;
    }
    
    // Getter para o campo idade
    public int getIdade() {
        return idade;
    }
    
    // Setter para o campo idade
    public void setIdade(int idade) {
        this.idade = idade;
    }
    
    // Getter para o campo ativo (note o uso de 'is' em vez de 'get')
    public boolean isAtivo() {
        return ativo;
    }
    
    // Setter para o campo ativo
    public void setAtivo(boolean ativo) {
        this.ativo = ativo;
    }
}

Por Que Usar Getters e Setters?

Embora possa parecer mais simples acessar os campos diretamente, existem várias vantagens em usar getters e setters:

  • Controle de Acesso: Você pode controlar se um campo é somente leitura ou somente gravação, ou se ele deve seguir certas regras de validação ao ser definido.
  • Ocultação de Implementação: A classe pode mudar a forma como os dados são armazenados internamente sem afetar as classes que a utilizam.
  • Flexibilidade: Você pode adicionar lógica adicional aos métodos acessores, como notificar outros objetos sobre mudanças no valor, realizar validações, ou até mesmo adiar o cálculo do valor até que ele seja realmente necessário (lazy loading).
  • Compatibilidade com Frameworks: Muitos frameworks Java, como Spring e Hibernate, dependem de getters e setters para funcionar corretamente.

É importante notar que, embora os getters e setters sejam uma prática comum, eles não são obrigatórios. Em alguns casos, onde a classe é muito simples e não requer controle adicional sobre seus campos, pode ser aceitável expor os campos diretamente. No entanto, isso deve ser feito com cautela e entendendo as consequências para a manutenção e flexibilidade do código.

Em resumo, getters e setters são uma parte crucial do encapsulamento em Java. Eles fornecem uma interface controlada para acessar e modificar os campos de uma classe, mantendo a integridade e a flexibilidade do código. Seguir as convenções de nomenclatura para esses métodos é essencial para manter a consistência e garantir a interação adequada com outras partes do ecossistema Java.

Répondez maintenant à l’exercice sur le contenu :

Qual das seguintes afirmações sobre encapsulamento e métodos acessores em Java está correta?

Tu as raison! Félicitations, passez maintenant à la page suivante

Vous avez raté! Essayer à nouveau.

Page suivante de lebook gratuit :

8112.7. Encapsulamento e métodos acessores (getters e setters): Uso de getters e setters para controle de acesso

Obtenez votre certificat pour ce cours gratuitement ! en téléchargeant lapplication Cursa et en lisant lebook qui sy trouve. Disponible sur Google Play ou App Store !

Get it on Google Play Get it on App Store

+ 6,5 millions
d'étudiants

Certificat gratuit et
valide avec QR Code

48 mille exercices
gratuits

Note de 4,8/5 dans les
magasins d'applications

Cours gratuits en
vidéo, audio et texte