back to top

I Metodi in Java

Fino a questo momeno abbiamo utilizzato la parola metodo, ma ancora non abbiamo definito cosa sia in realtà un metodo, come si dichiara e come lo si richiama.

Un metodo appartenente ad una certa classe ed è una sorta di funzione che all’interno contiene un blocco di codice che esegue alcune operazioni. La sintassi per la dichiarazione di un metodo segue le seguenti regole:

[modificatori] tipoDiRitornoDelMetodo nomeDelMetodo([parametri]) { corpoDelMetodo }

Analizziamo adesso, in maniera approfondita, ogni singolo elemento che costituisce la dichiarazione di un metodo:

  • Modificatori: sono delle parole chiave che permettono di modificare il comportamento e le caratteristiche di un certo metodo. Come detto i modificatori verranno discussi in maniera approfondita nelle lezioni successivi, ci basti adesso sapere che i modificatori più comuni sono public, private, static.
  • tipoDiRitornoDelMetodo: indica il tipo di ritorno che il metodo restituisce dopo l’esecuzione del corpoDelMetodo. Se per esempio un metodo effettua la somma di due numeri ritornerà un int oppure se un metodo prenderà in input due string e al termine restituisce un’unica stringa il tipo di ritorno sarà String. Spesso alcuni metodi svolgono alcune operazioni che non ritornano nessun valore, in questo caso un metodo di questo tipo avrà come tipo di ritorno void.
  • nomeDelMetodo: semplicente rappresenta il nome con cui verrà identificato il metodo. E’ buona norma scegliere il nome del metodo seguendo le linee guida espresse nei capitoli precedenti.
  • parametri: indica i parametri che il metodo prenderà in ingresso. Se per esempio avremo un metodo che esegue la somma di due numeri avremo come parametri due variabili di tipo int.
  • corpoDelMetodo: insieme di istruzioni che vengono eseguita non appena il metodo viene richiamato.

Per meglio comprendere quanto detto fino ad ora mostriamo qualche esempio per la definizione di metodi.

public class OperazioniSuNumeri{

  public int sottrazione (int x, int y){
    int sottrazione;
    sottrazione=x-y; 
    return sottrazione;
  }
    
  public String comparazione (int x, int y){    
    if(x>y){    
      String esito="il numero" + x + "è maggiore del numero" + y;
      return esito;
    }    
    else{  
      String esito="il numero" + y + "è maggiore del numero" + x;
      return esito;
    }
  }

}
Nel codice soprastante sono stati dichiarati due metodi: uno che esegue la sottrazione tra due numeri, un altro che presi in ingresso due numeri restituisce una stringa che rappresenta l’esito della comparazione tra i due numeri. La parola chiave return è utilizzata per terminare il metodo e far ritornare il risultato delle operazioni. Chiaramente se nella dichiarazione del metodo abbiamo definito come valore di ritorno un int non potremo fare un return di una stringa. Nel metodo "comparazione" abbiamo utilizzato un operatore di concatenazione (+) per ritornare un’unica stringa che contiene l’esito del confronto.

Una volta dichiarati i due metodi vediamo adesso come richiamarli e, a tale scopo, definiamo un’altra classe che chiameremo nuovamente "Implementazione" dove sarà presente il metodo main() che al suo interno istanzierà la classe "OperazioniSuNumeri" e richiamerà i due metodi:

public class Implementazione{

  public static void Main(String args[]){
    
    //Istanza della classe OperazionisuNumeri  
    OperazioniSuNumeri operazioni;
    operazioni = new OperazioniSuNumeri();
    
    int sottrazione = operazioni.sottrazione(10,2); //richiamo il metodo sottrazione
    String esitoComparazione = new String();
    esitoComparazione = operazioni.comparazione(8,3); //richiamo il metodo comparazione
        
    //stampo a video i risultati ottenuti
    System.out.println(esitoComparazione); 
    System.out.println(sottrazione); 
  
  }
  
}
Come possiamo vedere la chiamata ai metodi della classe "OperazioniSuNumeri" viene effettuata utilizzando il punto (.) come avevamo precedentemente visto per il settaggio degli attributi. Ovviamente quando viene richiamato un metodo che richiede dei parametri di input (come i metodi visti nell’esempio), è necessario passare i valori nello stesso numero di quanti sono i parametri dichiarati nel metodo e dello stesso tipo. Per esempio le seguenti chiamate ai metodi produrranno un errore:
//Il metodo dichiarato consta di due parametri.
//Passandoli un solo valore si ha un errore
operazioni.sottrazione(10); 

//il metodo dichiarato consta di due parametri di tipo int.
//Passando un valore come una stringa si ottiene un errore.
operazioni.comparazione(9,"ciao"); 

Pubblicitร