1. Funzioni/metodi in Java

Hai già imparato molti comandi Java, il che significa che puoi scrivere alcuni programmi piuttosto complessi. 10, 20, 30 righe di codice in un programma non sono un programma molto grande, giusto?

Ma un programma di oltre 100, ora è grande, e può essere piuttosto difficile capire il codice. C'è qualcosa che puoi fare per semplificare in qualche modo la scrittura e la lettura di programmi che hanno molto codice?

Sì, e i metodi (o le funzioni) ci aiuteranno in questo.

Cos'è un metodo? In parole povere, un metodo è un gruppo di comandi che ha un nome univoco . In altre parole, inseriamo diversi comandi in un gruppo e gli diamo un nome univoco. E questo è tutto: il metodo è pronto.

Esempio:

Senza metodo Con metodo
class Solution
{
   public static void main(String[] args)
   {
     System.out.print("Wi-");
     System.out.println("Fi");
     System.out.print("Wi-");
     System.out.println("Fi");

     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void main(String[] args)
   {
     printWiFi();
     printWiFi();
     printWiFi();
   }
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}

Nel programma nella colonna di sinistra, ripetiamo lo stesso codice tre volte — lo abbiamo fatto intenzionalmente per illustrare un punto. Ma nel programma a destra, abbiamo spostato il codice ripetuto in un metodo separato e gli abbiamo dato un nome univoco: printWiFi.

E invece del codice trasferito, chiamiamo il printWiFi()metodo 3 volte.

Quando viene eseguito il programma nella colonna a destra, ogni volta che printWiFi()viene eseguito il metodo, printWiFi()vengono eseguiti tutti i comandi all'interno del metodo. Abbiamo appena creato un nuovo comando (metodo), combinando diversi comandi in un unico gruppo.

Qualsiasi codice può essere suddiviso in metodi separati. Questo viene fatto per semplificare le cose: l'idea è che è meglio avere tanti piccoli metodi piuttosto che uno grande. Sarai presto sorpreso dal fatto che ci sia mai stato un tempo in cui hai scritto i tuoi programmi senza scrivere i tuoi metodi.


2. Dichiarare un metodo in Java

Quindi, come scrivi correttamente il tuo metodo?

public static void name()
{
  method body
}

Ci sono molte sfumature da considerare quando si dichiara (crea) un metodo, ma inizieremo con le basi. Come possiamo dichiarare il metodo più semplice? Una semplice dichiarazione di metodo è simile a questa:

Dove name è il nome univoco del metodo e method bodyrappresenta i comandi che compongono il metodo. Il significato delle parole public, static, e voidsarà discusso in seguito.

Dopo aver creato un metodo, possiamo chiamarlo nei nostri altri metodi. Una chiamata di metodo è simile a questa:

name();

Dove nameè il nome univoco del metodo che vogliamo chiamare, cioè il metodo di cui vogliamo eseguire i comandi quando arriviamo alla chiamata del metodo.

Quando il programma raggiunge la chiamata al metodo, entrerà semplicemente nel metodo, eseguirà tutti i suoi comandi, tornerà al metodo originale e continuerà l'esecuzione.

Come probabilmente avrai ormai intuito, la maggior parte dei comandi che abbiamo imparato finora sono solo metodi scritti da altri programmatori per semplificarci la vita: , , ecc.System.out.println()Thread.sleep()

Un metodo può contenere chiamate ad altri metodi:

Codice Nota
class Solution
{
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}




Chiama il printWiFi10Times()metodo


Dichiara il printWiFi10Timesmetodo


Chiama il printWiFi() metodo 10 volte in un ciclo


Dichiara il printWiFimetodo

Visualizza il testo sullo schermo:
Wi-Fi

3. Fatti sui metodi

Ecco alcuni altri fatti sui metodi:

Fatto 1. Un metodo fa sempre parte di una classe.

Un metodo può essere dichiarato solo in una classe. Un metodo non può essere dichiarato all'interno di un altro metodo. Un metodo non può essere dichiarato al di fuori di una classe.

Fatto 2. Il nome di un metodo non ha alcun significato sacro.

Non importa come vengono chiamati i metodi, questo non influisce su nulla. Il metodo principale è un metodo come tutti gli altri. È solo che questo nome è stato scelto per il metodo da cui la macchina Java avvierà l'esecuzione del programma. Non c'è niente di magico in questo.

Fatto 3. L'ordine dei metodi in una classe non ha importanza.

Puoi scrivere i tuoi metodi in una classe in qualsiasi ordine - questo non influirà in alcun modo sull'esecuzione del programma. Esempio:

Codice
class Solution
{
   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   
   public static void main(String[] args)
   {
     printWiFi10Times();
   }

   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }
}
class Solution
{
   public static void printWiFi()
   {
     System.out.print("Wi-");
     System.out.println("Fi");
   }

   public static void printWiFi10Times()
   {
     for (int i = 0; i < 10; i++)
       printWiFi();
   }
   public static void main(String[] args)
   {
     printWiFi10Times();
   }
}

Fatto 4. Le variabili all'interno di un metodo non sono in alcun modo correlate alle variabili di altri metodi.

Quel che succede a Las Vegas, resta a Las Vegas. E le variabili dichiarate all'interno di un metodo rimangono all'interno del metodo.

Le variabili con gli stessi nomi possono essere dichiarate in due metodi adiacenti e queste variabili non sono correlate tra loro in alcun modo.


4. Nomi dei metodi

È noto da tempo che i due problemi più difficili nella programmazione sono la scelta dei nomi giusti per i metodi e la scelta dei nomi giusti per le variabili.

In effetti, è emersa quasi un'intera scienza su come denominare correttamente i metodi. E ogni linguaggio di programmazione ha i suoi standard. In Java, è consuetudine seguire questi principi:

Principio 1. Il nome di un metodo dovrebbe descrivere brevemente cosa fa il metodo.

Quindi un altro programmatore che legge il tuo codice può fare affidamento sul nome del metodo per indovinare cosa fa il codice. Lui o lei non avrà bisogno di guardare ogni volta il codice dei metodi chiamati. E lo scopo dei metodi è più facile da ricordare.

Ricorda che è usato per "mettere il programma in stop" ed è usato per "leggere il numero intero successivo". Comodo, vero?Thread.sleep()Scanner.nextInt()

Principio 2. Un nome di metodo può essere formato da più parole.

Tuttavia, ci sono diverse limitazioni quando si esegue questa operazione:

  • Non puoi avere spazi nel nome di un metodo: tutte le parole sono scritte insieme.
  • Ogni parola è in maiuscolo, tranne la prima.
  • Il nome di un metodo inizia sempre con una lettera minuscola

Richiama il printWiFi10Timesmetodo. Cosa significa quel nome? "Visualizza la parola 'WiFi' 10 volte". Non dovresti includere molte parole nel nome di un metodo: il nome dovrebbe riflettere la sua vera essenza.

Questo standard per i metodi di denominazione si chiama CamelCase (Le lettere maiuscole sono come le gobbe di un cammello).

Principio 3. Il nome di un metodo inizia con un verbo.

Un metodo fa sempre qualcosa, quindi la prima parola nel nome di un metodo è sempre un'azione.

Ecco alcuni nomi errati per i metodi: home, cat, car, train, ...;

Alcuni buoni nomi sono: run, execute, print, read, write, ...

Principio 4. Usa solo lettere e numeri latini.

Java ha un eccellente supporto per diverse lingue. Puoi scrivere i nomi delle variabili, dei metodi e delle classi sia in russo che in cinese: funzionerà tutto!

Ma! Quanto tempo dovresti studiare Java, se il System.out.println()metodo fosse scritto in cinese? Molto più di adesso, giusto? Questo è il primo punto.

In secondo luogo, molti team di sviluppo software sono internazionali. Un numero molto elevato di librerie Java viene utilizzato dai programmatori di tutto il mondo.

Pertanto, si consiglia di utilizzare solo lettere e numeri latini nei nomi dei metodi.

Importante:
Il nome di un metodo deve iniziare con una lettera (non può iniziare con un numero).