Como você faria este teste condicional?
if(idade >= 18)...ou quem sabe if(idade > 17) ?
Ambos corretos, mas absolutamente não recomendáveis.
Nesse artigo ensinaremos uma importante lição de Java: Não usar números, e sim constantes.
Fugindo, um pouco, do escopo da seção "Orientação a Objetos", vamos introduzir uma boa prática na programação Java, que é o uso de constantes.
Essa seção tem por objetivo introduzir conceitos pro próximo artigo, sobre enum.
Por que usar constantes ao invés de números?
Imagine que você fez a aplicação. Uma aplicação real assim leva, fácil, milhares de linhas de código.
Durante todo o seu programa você usou esse número mágico, o 18.
Ora, é claro que ele vai aparecer várias vezes, pois a aplicação Java sobre maior idade etc.
Ok, até aí tudo bem.
Como você estudou pelo curso Java Progressivo, seu programa está funcionando que é uma beleza.
Agora imagine a situação: eleições.
Novos governantes, novas leis...a maioridade agora é 16.
O que eles fazem?
'Chama o programador!' e lá vai você, sair catando no código o número 18 e substituindo por 16.
Imagina o trabalho...
Um mais esperto pode dizer: 'use regex ou ctrl+f' ou outro atalho qualquer pra achar 18 e substituir por 16.
Mas e se no seu aplicativo o número 18 aparecer e não tem nada a ver com idade?
Vai ter um baita bug.
Ou em vez de 18, você usou os números 0 ou 1 em sua aplicação, e agora precisa mudar.
Não dá pra substituir todos os 1 ou 0, tem que sair catando no código e mudando manualmente !!!
A vantagem de usar constantes é essa: você define uma vez, e usa o NOME da constante!
O certo seria:
int maioridade=18;
if( idade >= maioridade)
Pronto. A variável 'maioridade' poderia aparecer 1 milhão de vezes no seu código.
No dia que o governo mudar ela, mude só a declaração do valor, de 18 pra 16 e isso será reproduzido em todo seu código.
Outra vantagem é a facilidade pra ler seu código, por você (depois de meses sem ver o código, a gente esquece o que significa aquele amontoado de códigos Java) ou pra outra pessoa que for ler.
Note:
if(idade > 17)
Não dá pra saber, exatamente o que é isso, só olhando. Tem que ver alguma documentação pra ter certeza.
Porém, se você se deparar com:
if(idade > maioridade)
...ora, maioridade é maioridade! Já sei do que se trata! Esse 'if' checa se a pessoa é adulta!
Outro exemplo:
A = 3.14*r*r
O que é isso? Não sabe?
E agora...
A = PI*r*r
Agora ficou óbvio que é o número pi, então é algo relacionado com geometria. No caso, a área de um círculo.
O mais indicado seria definir constantes e usar seus nomes.
Fica mais bonito, elegante e profissional.
Ou seja, defina o valor de suas variáveis e use constantes.
final - declarando variáveis constantes
O Java reservou um artifício bem interessante para você usar suas constantes, que é a keyword 'final'.Quando você define uma variável com o 'final', ela se torna constante.
Se tentar mudar ela, obterá um erro.
A declaração é a seguinte:
final tipo nomeDaVariavel
Por exemplo:
final int SIM = 1;
final int NAO = 0;
Pronto. Agora você pode usar 'SIM' e 'NAO', ao invés de usar números.
Usar um 'OK' ou 'ERRO', ao invés de números estranho e bizarros.
Em classes, seria:
private final int STATUS_ON = 1;
private final int STATUS_OFF = 0;
De agora em diante, usaremos pouco números.
Mesmo que suas aplicações sejam simples e curtas - e aparente não haver necessidade de constantes - use-as.
É um costume que levará quando se tornar profissional e criar aplicações reais.
final em Classes e Objetos
Em uma classe, você poderá declarar um atributo como final de duas maneiras possíveis:
- Ao inicializar a variável, inicie com seu valor. Só faça isso se quiser que todos os objetos daquela classe possuam essa variável com o mesmo valor.
- Você também poderá inicializar suas variáveis através de um método construtor. Assim, cada objeto inicializado poderá ter um valor diferente.
Mas se lembre: após inicializadas em sua declaração ou no construtor, não podem mais ser alteradas.
Certifique-se de que quer mesmo ter uma constante em sua aplicação. Se sim, sempre use a keyword final, pois isso evitará que a variável tenha seu valor alterado por acidente ou má programação.
10 comentários:
Excelente !!! isso vai ajudar muitos eu acredito que isso seja um ovo de ouro ... sendo que em outros locais não se ensinam esse macete. Obrigado parabéns e sucesso a todos !!!
Simplesmente muito bom. Obrigado pelas dicas.
Abraço a todos e bons códigos.
Realmente fica mais visível, principalmente para iniciantes como eu. Gostei muito!!!valeu!
Muito bom!!
muito bom, a explicaçao e mesmo uma dica a mais, obrigado a todos!
Muito bom! Mais melhoria para meus códigos. Parabéns.
Muito bom, eu não tinha pensado nisso. Obrigado
Muito boa essa orientação, aumenta a segurança do código prevenindo alteração no valor das constantes, assim não criaremos "constantes INconstantes" rs
Além de evitar um trabalhão depois caso surja a necessidade de alterar o código como salientado no artigo.
vc me deu um problema que eu resolveria bem mais rapido kkkk, referente a mudança de maior idade penal de 18 para 16, de vez ter que muda a programação, só copia a programação, cola no bloco de notas e substitui 18 por 16, abraços kkkkkkkkkkk
Bem explicativo, obrigado.
Postar um comentário