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.
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 !!!
ResponderExcluirSimplesmente muito bom. Obrigado pelas dicas.
ResponderExcluirAbraço a todos e bons códigos.
Realmente fica mais visível, principalmente para iniciantes como eu. Gostei muito!!!valeu!
ResponderExcluirMuito bom!!
ResponderExcluirmuito bom, a explicaçao e mesmo uma dica a mais, obrigado a todos!
ResponderExcluirMuito bom! Mais melhoria para meus códigos. Parabéns.
ResponderExcluirMuito bom, eu não tinha pensado nisso. Obrigado
ResponderExcluirMuito 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
ResponderExcluirAlé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
ResponderExcluirBem explicativo, obrigado.
ResponderExcluir