Gostaria de saber se existe uma convenção ou boa pratica de usar final em todos os atriutos da minha classe? Se sim Por que?
public class request{
private final String cpf;
private final String rg;
}
`
Gostaria de saber se existe uma convenção ou boa pratica de usar final em todos os atriutos da minha classe? Se sim Por que?
public class request{
private final String cpf;
private final String rg;
}
`
Vamos lá...
Luis vou tentar responder sua pergunta abordando algumas coisas. Desde já peço desculpas se eu for repetitivo e falar alguma coisa que já seja óbvio pra você.
Java nos permite duas maneiras de criar uma variável e atribuir um valor a ela.
Utilizando a palavra reservada final ficaria assim:
public class Exemplo {
final String NOME = "Luis";
final long tempo;
Exemplo() {
this.tempo = System.currentTimeMillis();
}
}
As duas formas vemos que quando marcamos uma variável como final, não podemos reatribuir seu valor.
Então quer dizer que variáveis finais são constantes?
Mais ou menos. Na realidade se o tipo da variável final for imutável sim, exemplos:
Agora se o tipo da variável for mutável podemos alterar seu estado através de métodos disponíveis, exemplo:
public class OutroExemplo {
private String nome;
OutroExemplo(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
}
public class Main {
final static OutroExemplo outroExemplo = new OutroExemplo("Luis");
public static void main(String[] args) {
System.out.println(outroExemplo.getNome());
outroExemplo.setNome("Alterando o valor");
System.out.println(outroExemplo.getNome());
}
}
Agora que ficou claro o uso da palavra reservada final para variáveis (lembrando que pode ser usada a nível de classe e métodos) vamos as considerações:
Convenção ou boa prática: Se você pensar em imutabilidade talvez isso possa fazer sentido. Todavia entendo que uma "convenção" não seja o caso. Programação funcional é um bom exemplo de uso da imutabilidade.
Com relação a boa prática, ao meu ver não é o caso. Objetos tem ESTADO e COMPORTAMENTO.
Alterar o estado de um objeto após sua criação é bem viável em projetos de OO.
No mais pra mim é discussão de bar. Espero ter ajudado e me desculpe se prolonguei demais.