Per sapere se un metodo è statico basta vedere se contiene la keyword static:
Se il tuo metodo dipende dai valori dei campi (variabili della classe), non dev'essere statico; se il tuo metodo è completamente indipendente dalla classe, dovrebbe essere dichiarato statico.
Ad esempio:
Il tuo getArea dipende dall'oggetto? No, perché accetta il lato come parametro, ha tutte le informazioni necessarie per darti una risposta senza il bisogno di andare a guardare i campi della classe.
BTW: normalmente non si usa chiamare dinamici i metodi non statici.
Codice:
public static int metodo1() { ... } // questo è statico
public int metodo2() { ... } // questo non è statico
Se il tuo metodo dipende dai valori dei campi (variabili della classe), non dev'essere statico; se il tuo metodo è completamente indipendente dalla classe, dovrebbe essere dichiarato statico.
Ad esempio:
Codice:
class Quadrato
{
public int lato = 0;
Quadrato(int _lato)
{
lato = _lato;
}
public static double getPigreco() // il pigreco è uguale per tutti i quadrati, non dipende dal mio oggetto
{ // tralascia il fatto che questo metodo in questa classe abbia poco senso
return 3.14;
}
public int getArea() // l'area è diversa per ogni quadrato, non può essere un metodo statico
{
return lato*lato;
}
}
Il tuo getArea dipende dall'oggetto? No, perché accetta il lato come parametro, ha tutte le informazioni necessarie per darti una risposta senza il bisogno di andare a guardare i campi della classe.
BTW: normalmente non si usa chiamare dinamici i metodi non statici.