JavaProgrammazione

I metodi

Consiste nel definire sotto un solo nome un blocco di istruzioni, utilizzabili in diverse parti del programma richiamandolo con il nome senza dover riscrivere ogni volta il codice.

L‘identificatore è il nome assegnato al blocco di codice e che dovrà essere utilizzato per eseguire il metodo. I parametri sono i nomi simbolici delle variabili che il blocco dovrà ricevere. Se specificato il metodo può restituire un valore o non restituire niente se il metodo è dichiarato come void.

Possiamo decidere di dichiarare delle eccezioni tramite la keyword throws per gestire le condizioni di errore ma questo lo riprenderemo in una sede opportuna.

L’identificatore e la lista dei parametri si definisce come signature del metodo, questo significa che possiamo ridefinire il medesimo metodo più volte a patto che ogni definizione abbia una lista di parametri diversa come tipo.

Bisogna definire il metodo di visibilità del metodo:

  • public – visibile ovunque;
  • private – solo alla classe;
  • protected – solo dalle classi che stanno nel medesimo package di quelle in cui è definito il metodo e dalle classi da essa derivate;
  • default – visibile alle classi nel medesimo package;
  • final – serve per rendere un metodo non ridefinibile dalle sottoclassi;

Per gli argomenti abbiamo un meccanismo, varags, che ci permette di definire un numero di argomenti indefinito.

public Utente (int id, String… desc) {
blocco codice
}corrisponde a:public Utente (int id, String[] desc) {
blocco codice
}

Il vantaggio di usare il meccanismo varargs è nel rendere il codice semplice e sintetico

usando vargargs
Utente (1, “Descrizione Uno”, “Descrizione Due”, “Descrizione Tre”, “Descrizione Quattro”);senza vargargs
Utente (1, new String[“Descrizione Uno”, “Descrizione Due”, “Descrizione Tre”, “Descrizione Quattro”]);

Bisogna stare attenti a non creare ambiguità in fase di esecuzione

public void provaVarg (String arg1, String… list) {
blocco codice
}

Il compilatore non genera nessun errore, ma solo in fase di esecuzione perché il sistema non riesce a valutare se il primo parametro fa parte o non della lista.

I metodi non statici sono associati ad ogni singola istanza di una classe, possono accedere e modificare le variabili dell’istanza e modificarne lo stato. Per eseguire il metodo usiamo nomeIstanza.nomeMetodo();

I metodi statici non sono associati ad una istanza ma solo ad una classe, non potranno interagire con le variabili di istanza. Per eseguire il metodo usiamo nomeClasse.nomeMetodo();