correta
Set and get - How to use there methods correctly
Vamos aprender nesta aula de nosso curso online de Java os dois métodos mais usados pelos
programadores Java: os getters e setters.
Daí surge uma pergunta natural: por que criar métodos para acessar variáveis, se podemos
acessar elas diretamente?
Simples: questão de segurança.
As variáveis 'private' só podem ser acessadas de dentro da Classe. É como se elas fossem
invisíveis foram do escopo da classe/objeto. Assim, evitamos que outros métodos, classes ou
hackers tenham acesso aos dados de determinada classe, que muitas vezes podem ser dados
privados, como é caso de aplicações para empresas e bancos.
Por exemplo: suponha que você tenha que criar uma aplicação para um banco, onde vai limitar
o número de saques de um cliente.
Os valores do saldo desse cliente ficarão armazenados na variável 'saldo'. Se você der acesso
total a essa variável, o cliente poderia usar de forma descontrolada os serviços do banco.
Porém, podemos criar um método em que, cada vez que o cliente saque dinheiro ele ative um
contador:
Nesse trecho de código, quando o usuário tenta sacar, através do menu do caixa eletrônico,
ele vai para o método 'saque()'.
Então cada vez que ele saca, seu saldo diminui em 'valor' e um contador (que é uma variável
da classe) é incrementado. É impossível fugir desse método!
Sacou? O contador roda! Sempre!
Sabemos que temos um limite diário de saque, vamos supor que seja três. Então vamos limitar
o número de saques:
public void setSaque(double valor){
if(contador <=3){
saldo -= valor;
contador++;
} else {
System.out.println("Você atingiu o limite de saques diários");
}
}
Pronto. Se você sacar 3x, o contador terá valor 4 (supondo que seu valor inicial seja 1), e agora
é impossível ele sacar mais, pois sempre vai cair no else.
No próximo artigo criaremos uma aplicação que simula um banco.
Usando o exemplo da classe "Funcionario", do artigo passado sobre this e uso de métodos em
Classe e Objetos, temos o código:
getSet.java
chefe.setNome(nome);
chefe.setID(ID);
chefe.setSalario(salario);
chefe.exibir();
}
Funcionario.java
public class Funcionario {
private String nome;
private int ID;
private double salario;
setGet.java
chefe.exibir();
}
Funcionario.java
Definir get e set para todas as variáveis, de forma direta, é um exemplo de péssimo hábito de
programação. Infelizmente é uma técnica bem comum e muitos programadores, até os mais
experientes, cometem esse ato inútil.
Muito provavelmente ele é inútil. Para saber quando usar é simples: use quando for fazer algo
além de fornecer valor.
Um exemplo util:
retorno metodo(tipo valor){
this.nome_da_variavel = valor * juros;
};
Vamos treinar!
A seguir, mostra um menu com as opções (esse menu deverá ser um método):
- Extrato: exibe o nome, número da conta, saldo e quantos saques já foram realizados
- Sacar: recebe o valor a ser sacado, informa se pode ser sacado (não pode ficar negativo) e
mostra o saldo
- Depositar: recebe o valor a ser depositado e mostra o novo saldo
- Sair
Esse menu aparece até o usuário escolher sair. As outras opções são métodos que devem
fazer parte da "Conta.java" (setters e getters). Note que o usuário pode sacar no máximo 5
vezes por dia.