O documento discute encapsulamento, métodos get e set, e fornece exemplos de sua definição e uso. O encapsulamento separa o programa em partes isoladas para torná-lo mais flexível e fácil de modificar. Métodos get retornam valores de atributos privados e métodos set modificam esses atributos, permitindo o acesso controlado. Exemplos ilustram como definir esses métodos em uma classe Cachorro.
3. Encapsulamento
Na Orientação a objetos, o encapsulamento significa separar o programa em partes, o
mais isoladas possível. Dessa forma, tem-se por objetivo tornar o software mais
flexível, fácil de modificar e de criar novas implementações.
No encapsulamento de dados, o que fazemos é impedir o acesso direto aos atributos da
classe, criando métodos tanto para obter os valores dos atributos, quanto para
atribuir valores a eles. Os métodos que realizam tais tarefas são comumente
chamados de setters e getters (dos verbos set e get, em inglês).
Observe a classe a seguir (Cachorro), para entender a utilização do Encapsulamento.
Nesta classe é criado um método para cada modificação necessária de atributos,
desta forma podemos evoluir livremente a aplicação sem que a alteração de uma
função afete o software como um todo:
4. Vantagem
Uma das grandes vantagens do uso do encapsulamento de dados é controlar o acesso
aos atributos da classe, evitando comportamentos inesperados. Por exemplo, se
determinado atributo não pode ser negativo, você pode condicionar o seu método de
atribuição (set) a não deixar valores negativos (não atribuindo nada ou atribuindo alguma
valor válido padrão). Além disso, caso determinado valor deva ser privado e não deve
possuir acesso externo à classe, basta não definir seus métodos de acesso.
5. Uso
// Arquivo Cachorro.java
package canil.exemplo;
public class Cachorro {
private int tamanho;
private String raca;
private String nome;
public void setTamanho(int tamanho) {
this.tamanho = tamanho;
}
public int getTamanho() {
return tamanho;
}
public void setRaca(String raca) {
this.raca = raca;
}
public String getRaca() {
return raca;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void latir() {
System.out.println("Ruff! Ruff!");
}
}
6. Métodos Acessores
Get e Set - Métodos Acessores
Como visto anteriormente, o encapsulamento "protege" os atributos ou métodos dentro
de uma classe, portanto devemos prover meios para acessar tais membros quando eles
são particulares, ou seja, quando possuem o modificador private.
O que torna isso possível é a criação de métodos.
Em programação orientada a objetos, esses métodos são chamados de métodos
acessores ou getters e setters, pois eles provêm acesso aos atributos da classe, e
geralmente, se iniciam com get ou set, daí a origem de seu nome.
Na verdade, não há nada de diferente entre os métodos comuns e os métodos
acessores. A única importância está no fato da orientação a objeto. Pois, sempre que
formos acessar um membro em Java usaremos get ou set.
7. GET e SET
GET
Nomeamos um método acessor com get
toda vez que este método for verificar
algum campo ou atributo de uma
classe.
Como este método irá verificar um valor,
ele sempre terá um retorno como
String, int, float, etc. Mas não terá
nenhum argumento.
SET
Nomeamos um método acessor com set
toda vez que este método for modificar
algum campo ou atributo de uma
classe, ou seja, se não criarmos um
método acessor set para algum
atributo, isso quer dizer que este
atributo não deve ser modificado.
Portanto, como o valor de um atributo da
classe será modificado, não é
necessário que este método retorne
nenhum valor, por isso, os métodos
setters são void. Porém,
obrigatoriamente, eles tem que receber
um argumento que será o novo valor
do campo.
8. Uso
Considere a classe:
public class TV {
private int tamanho;
private int canal;
private int volume;
private boolean ligada;
public TV(int tamanho, int canal, int volume, boolean ligada) {
this.tamanho = tamanho;
this.canal = canal;
this.volume = volume;
this.ligada = ligada;
}
9. São exemplos de uso
public int getTamanho() {
return tamanho;
}
public int getCanal() {
return canal;
}
public int getVolume() {
return volume;
}
public void setTamanho(int tamanho) {
this.tamanho = tamanho;
}
public void setCanal(int canal) {
this.canal = canal;
}
public void setVolume(int volume) {
this.volume = volume;
}
10. Referências
Get e Set
− http://www.tiexpert.net/programacao/java/get-set.php
− http://www.devmedia.com.br/criando-metodos-get-e-set-em-java/24623
Encapsulamento
− http://pt.wikipedia.org/wiki/Encapsulamento
− http://www.rafaeltoledo.net/encapsulamento-de-dados/
Rio de Janeiro, 12/04/2015
Software de apresentação – LibreOffie Impress