Un frammento di lezione con un mentore come parte del corso Codegym University. Iscriviti al corso completo.


"Sei già qui, Amigo? So che hai già imparato molti comandi Java. Hai quasi raggiunto il mio livello!"

"È vero Diego?"

"Certo che no, ha-ha. Devi ancora studiare e imparare molto. Eppure, sai già abbastanza per scrivere programmi abbastanza complessi. 10, 20, 30 righe di codice in un programma non sono un programma molto grande, Giusto?"

"Credo che tu abbia ragione. Specialmente se metti le parentesi graffe su righe separate."

"Ma un programma di oltre 100 righe, ora è grande. Anche noi robot abbiamo difficoltà a comprendere tale codice. Cosa ne pensi, c'è qualcosa che puoi fare per semplificare in qualche modo la scrittura e la lettura di programmi che hanno molto codice?

"Lo spero sinceramente!"

"Le tue speranze non sono vane. È possibile semplificare i programmi e i metodi sono qui per aiutarci in questo. A volte sono chiamati funzioni .

"Funzioni, metodi... Uh, cosa sono?"

"In parole povere, un metodo è un gruppo di comandi che ha un nome univoco . In altre parole, mettiamo solo diversi comandi in un gruppo e gli diamo un nome univoco. E questo è tutto - boom - abbiamo un metodo. La maggior parte spesso questi comandi sono raggruppati secondo una logica per risolvere un compito piccolo e specifico, ad esempio "un metodo per stampare righe da un file" o "un metodo per elevare un numero a un esponente".

"Quindi, abbiamo suddiviso il programma in metodi?"

"Sì, e semplifica il codice.

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 molti metodi piccoli che uno grande.

"È un'ottima idea suddividere un programma in metodi.

"Presto ricorderai con meraviglia come scrivevi programmi senza creare metodi tuoi."

"Sono pronto ad ascoltare e tentare di scrivere metodi! Dimmi solo come farlo."

Dichiarare un metodo in Java

"Come possiamo dichiarare il metodo più semplice? Ecco come:

public static void name()
{
  method body
}

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 ha questo aspetto:

name();

"Dov'è nameil 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.

"E ora, Amigo, guarda con occhi nuovi i comandi che hai già imparato. Ad esempio, . Ti viene in mente qualcosa riguardo a cosa sia veramente?"System.out.println()

"Stai dicendo che tutti questi comandi sono solo metodi scritti da altri programmatori?"

"Non tutti, ma molti. Sì, esatto! Altri li hanno scritti per renderci la vita più facile."

"Così public static void main(String[] args)è anche un metodo... Ora ha più senso!"

"Certo che lo fa! È programmazione! Si scopre che il metodo principale - l'alfa e l'omega del programma - 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");
   }
}




Chiamiamo il print10TimesWiFi()metodo


Dichiariamo il print10TimesWiFimetodo


Chiamiamo il printWiFi() metodo 10 in un ciclo


Dichiariamo il printWiFimetodo

Visualizziamo " Wi-Fi" sullo schermo

Fatti sui metodi

"Ho messo da parte alcuni fatti utili sui metodi per te. Ecco, divertiti:

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. Detto questo, è meglio scegliere nomi di metodo che rendano almeno un po' chiaro a cosa servono. Ne parlerò un po' più tardi.

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 correlate in alcun modo 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 in alcun modo correlate tra loro.

Nomi dei metodi

"Allora... ti avevo promesso di parlarti dei nomi dei metodi. È noto da tempo che i due problemi più difficili nella programmazione sono scegliere i nomi giusti per i metodi e scegliere i nomi giusti per le variabili."

"Non avrei mai pensato che fosse così difficile!"

"Semplicemente non sapevi molto del codice vago di altri, in cui variabili e metodi hanno nomi arbitrari. Prova solo a capire quel codice. In effetti, è emersa quasi un'intera scienza su come denominare correttamente i metodi. E ogni linguaggio di programmazione ha i propri 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.

Ad esempio, viene utilizzato per "mettere il programma in sospensione" e viene utilizzato per "leggere il numero intero successivo". Comodo, eh?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

Ricorda il print10TimesWiFimetodo. 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. Un nome di metodo utilizza 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: tutto funzionerà!

Ma! Immagina 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).

"Questi sono tutti i principi di base che governano la denominazione dei metodi in Java. La lezione è finita ora. Vai a risolvere i compiti!"

"Sto già correndo, Diego!"


Un frammento di lezione con un mentore come parte del corso Codegym University. Iscriviti al corso completo.