Vamos criar um exemplo em Java que utiliza métodos de acesso (accessor) e métodos de modificação (mutator) em uma classe chamada Pessoa. Esses métodos são comumente conhecidos como getters (métodos de acesso) e setters (métodos de modificação) e são usados para acessar e modificar os campos privados de uma classe.
public class Pessoa {
// Campos privados
private String nome;
private int idade;
// Método de acesso (getter) para o campo 'nome'
public String getNome() {
return nome;
}
// Método de modificação (setter) para o campo 'nome'
public void setNome(String novoNome) {
this.nome = novoNome;
}
// Método de acesso (getter) para o campo 'idade'
public int getIdade() {
return idade;
}
// Método de modificação (setter) para o campo 'idade'
public void setIdade(int novaIdade) {
// Validando se a idade é não negativa antes de modificar o campo
if (novaIdade >= 0) {
this.idade = novaIdade;
} else {
System.out.println("Idade inválida. Deve ser não negativa.");
}
}
public static void main(String[] args) {
// Criando um objeto Pessoa
Pessoa pessoa1 = new Pessoa();
// Utilizando os métodos de modificação (setters) para definir os valores dos campos
pessoa1.setNome("Ana");
pessoa1.setIdade(25);
// Utilizando os métodos de acesso (getters) para obter os valores dos campos e exibir informações
System.out.println("Nome: " + pessoa1.getNome());
System.out.println("Idade: " + pessoa1.getIdade());
}
}
Neste exemplo:
- A classe
Pessoapossui dois campos privados (nomeeidade). - Para cada campo, há um método de acesso (getter) que retorna o valor do campo e um método de modificação (setter) que permite alterar o valor do campo.
- No método
main, criamos um objetoPessoae utilizamos os métodos de modificação para definir os valores dos campos. - Em seguida, utilizamos os métodos de acesso para obter os valores dos campos e exibir informações no console.
Os métodos de acesso e modificação são úteis para garantir um controle mais preciso sobre a leitura e modificação dos campos privados de uma classe, aplicando, se necessário, lógica adicional (como validações) durante essas operações.