Na programação orientada a objetos, o encapsulamento é um conceito fundamental que se refere à prática de ocultar os detalhes de implementação de um objeto e fornecer uma interface para acessar suas propriedades e comportamentos. Os métodos acessador e modificador são dois conceitos importantes relacionados ao encapsulamento em Java.
Acessador
Os métodos de acesso, também conhecidos como métodos getter, são métodos que permitem recuperar o valor das variáveis de instância privada de um objeto. Esses métodos fornecem acesso somente leitura ao estado do objeto. Ao usar métodos de acesso, você pode garantir que o estado do objeto não seja modificado acidentalmente ou maliciosamente por código externo.
Mutador
Os métodos mutadores, também conhecidos como métodos setter, são métodos que permitem modificar o valor das variáveis de instância privada de um objeto. Esses métodos fornecem acesso somente gravação ao estado do objeto. Ao usar métodos mutadores, você pode garantir que o estado do objeto seja modificado apenas por meio de uma interface controlada.
Vamos dar uma olhada em um exemplo para entender o conceito de métodos acessadores e modificadores em Java. Suponha que temos uma classe chamada Person que possui três variáveis de instância privadas: nome, idade e email. Queremos fornecer acesso a essas variáveis usando métodos acessadores e modificadores.
public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } }
Neste exemplo, definimos três métodos acessadores: getName(), getAge() e getEmail(), e três métodos modificadores: setName(), setAge() e setEmail(). Os métodos acessadores retornam o valor da variável de instância correspondente, enquanto os métodos mutadores definem o valor da variável de instância correspondente.
Convenção de nomes
A convenção de nomenclatura para métodos acessadores e modificadores é importante em Java. Os métodos acessadores devem ser nomeados começando com 'get' seguido do nome da variável, com a primeira letra maiúscula. Os métodos mutadores devem ser nomeados começando com 'set' seguido do nome da variável, com a primeira letra maiúscula. Essa convenção de nomenclatura deixa claro o que cada método faz e torna o código mais legível e de fácil manutenção.
Os métodos acessadores e modificadores são uma parte essencial do encapsulamento em Java. Eles permitem controlar o acesso ao estado de um objeto, garantindo que ele seja acessado e modificado apenas através de uma interface controlada. Seguindo a convenção de nomenclatura para métodos acessadores e modificadores, podemos tornar seu código mais legível e fácil de manter.
aqui está um exemplo de programa que demonstra o uso de métodos acessadores e modificadores em Java:
Pessoa.java
import java.util.Scanner; public class Person { private String name; private int age; private String email; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Person person = new Person(); System.out.print('Enter name: '); String name = scanner.nextLine(); person.setName(name); System.out.print('Enter age: '); int age = scanner.nextInt(); person.setAge(age); scanner.nextLine(); // Consume the newline character left by nextInt() System.out.print('Enter email: '); String email = scanner.nextLine(); person.setEmail(email); System.out.println(' Name: ' + person.getName()); System.out.println('Age: ' + person.getAge()); System.out.println('Email: ' + person.getEmail()); } }
Saída:
Name: Manoj Age: 21 Email: [email protected]
Neste exemplo, o método principal cria uma nova instância da classe Person e usa os métodos modificadores (setName, setAge e setEmail) para definir os valores das variáveis de instância privada do objeto. Em seguida, os métodos acessadores (getName, getAge e getEmail) são usados para recuperar os valores das variáveis de instância e exibi-los no console.
Vantagem de usar acessador e modificador
A vantagem de usar métodos acessadores e modificadores é que eles nos permitem adicionar validação e outras lógicas de processamento ao processo de obtenção e configuração do estado de um objeto. Por exemplo, você pode adicionar uma verificação de validação ao método 'setAge(int age)' para garantir que o valor da idade esteja dentro de um determinado intervalo ou adicionar lógica de formatação ao método 'getName()' para colocar a primeira letra do nome em maiúscula. Nome da pessoa.