Grazie per la spiegazione.
Per comprendere meglio posto una parte (una classe) di un esercizio che sto facendo:
codice:
public class Moneta
{
public final static String VALUTA="EURO";
private final int valore;
public Moneta(int valore)
{
this.valore = valore;
System.out.println("Creata " + getDescrizione());
}
public String getDescrizione()
{
String descrizione = "moneta da: " + formattaStringaDescrittiva(valore) + VALUTA;
return descrizione;
}
private static String formattaStringaDescrittiva(int valore)
{
String stringa = " centesimi di ";
if (valore == 1)
{
stringa = " centesimo di ";
}
else if (valore > 99)
{
stringa = " ";
valore /= 100;
}
return valore + stringa;
}
public int getValore()
{
return valore;
}
}
Mi è tutto chiaro tranne il perchè il metodo formattaStringaDescrittiva la soluzione lo riporta come statico. Stando al ragionamento fatto dovrebbe essere non statico visto che riguarda comunque ogni oggetto di tipo Moneta.
p.s. se una variabile è dichiarata final è una costante? se si, non dovrebbe essere inizializzata? Mi riferisco a private final int valore;