Durante il mio stage uno dei miei colleghi mi ha dato un suggerimento. Voglio sapere se questa è una buona pratica.Stringa privata o Stringa statica pubblica?
Quello che stavo facendo era creare classi che sono utilizzate solo per i valori che contengono e non hanno funzioni che effettivamente fanno qualcosa (a parte l'avere getter, setter e un costruttore). Ho dichiarato le mie variabili come questo:
public class ObjectIUse{
Private String name;
public ObjectIUse(String name){
this.name = name;
}
public String getName(){
return name;
}
}
Quindi io non sto usando un setter perché dovrebbe sempre rimanere lo stesso. Il mio collega ha detto che posso anche fare in questo modo:
public class ObjectIUse{
public final String name;
public ObjectIUse(String name){
this.name = name;
}
}
Perché ora non abbiamo bisogno di avere qualsiasi getter o setter perché è pubblico, ma può anche non essere cambiato, perché è definitiva.
Quale sarebbe meglio? O sarebbe forse preferibile renderlo ancora privato ma anche definitivo? Voglio dire che tutte le opzioni funzionano, ovviamente. Voglio solo sapere quale è meglio e perché.
Rendilo privato. Rendi finale. –
Cosa disse Sayem. Le variabili dei membri pubblici sono "considerate dannose". Quando il tuo oggetto non cambia (diciamo che è "immutabile"), dichiara la variabile membro 'final'. Ciò ti obbliga a impostarlo nel costruttore e impedisce che cambi, anche se qualcuno riflette la tua istanza di classe. –
Era anche quello che pensavo sarebbe stata l'opzione migliore. Qual è il tuo ragionamento? – WereWolfBoy