1. Funcții/metode în Java

Ați învățat deja o mulțime de comenzi Java, ceea ce înseamnă că puteți scrie niște programe destul de complexe. 10, 20, 30 de linii de cod într-un program nu este un program foarte mare, nu?

Dar un program de peste 100, acum este mare și poate fi destul de dificil de înțeles codul. Există ceva ce puteți face pentru a simplifica cumva scrierea și citirea programelor care au mult cod?

Da, iar metodele (sau funcțiile) ne vor ajuta în acest sens.

Ce este o metodă? Pune foarte simplu, o metodă este un grup de comenzi care are un nume unic . Cu alte cuvinte, punem mai multe comenzi într-un grup și îi dăm un nume unic. Și gata - metoda este gata.

Exemplu:

Fără o metodă Cu o metodă
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");
   }
}

În programul din coloana din stânga, repetăm ​​același cod de trei ori - am făcut acest lucru în mod intenționat pentru a ilustra un punct. Dar în programul din dreapta, am mutat codul repetat într-o metodă separată și i-am dat un nume unic - printWiFi.

Și în loc de codul relocat, apelăm printWiFi()metoda de 3 ori.

Când se rulează programul din coloana din dreapta, de fiecare dată când metoda printWiFi()este executată, toate comenzile din interiorul printWiFi()metodei sunt executate. Tocmai am creat o nouă comandă (metodă), combinând mai multe comenzi într-un singur grup.

Orice cod poate fi împărțit în metode separate. Acest lucru se face pentru a simplifica lucrurile: ideea este că este mai bine să aveți multe metode mici decât una mare. În curând vei fi surprins că a existat vreodată un moment în care ți-ai scris propriile programe fără să-ți scrii propriile metode.


2. Declararea unei metode în Java

Deci, cum scrieți corect metoda?

public static void name()
{
  method body
}

Există o mulțime de nuanțe de luat în considerare atunci când declarați (creați) o metodă, dar vom începe cu elementele de bază. Cum putem declara cea mai simplă metodă? O declarație simplă de metodă arată astfel:

Unde name este numele unic al metodei și method bodyreprezintă comenzile care alcătuiesc metoda. Semnificația cuvintelor public, staticși voidva fi discutată mai târziu.

După ce am creat o metodă, o putem apela în celelalte metode ale noastre. Un apel de metodă arată astfel:

name();

Unde nameeste numele unic al metodei pe care vrem să o apelăm, adică metoda ale cărei comenzi vrem să le executăm când ajungem la apelul metodei.

Când programul ajunge la apelul metodei, pur și simplu va intra în metodă, va executa toate comenzile, va reveni la metoda inițială și va continua execuția.

După cum probabil ați ghicit până acum, majoritatea comenzilor pe care le-am învățat până acum sunt doar metode scrise de alți programatori pentru a ne ușura viața: , , etc.System.out.println()Thread.sleep()

O metodă poate conține apeluri către alte metode:

Cod Notă
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");
   }
}




Apelați printWiFi10Times()metoda


Declarați printWiFi10Timesmetoda


Apelați printWiFi() metoda de 10 ori într-o buclă


Declarați printWiFimetoda

Afișați textul pe ecran:
Wi-Fi

3. Fapte despre metode

Iată mai multe informații despre metode:

Faptul 1. O metodă face întotdeauna parte dintr-o clasă.

O metodă poate fi declarată numai într-o clasă. O metodă nu poate fi declarată în interiorul unei alte metode. O metodă nu poate fi declarată în afara unei clase.

Faptul 2. Numele unei metode nu are sens sacru.

Nu contează ce metode sunt numite - asta nu afectează nimic. Metoda principală este o metodă la fel ca toate celelalte. Doar că acest nume a fost ales pentru metoda din care mașina Java va începe execuția programului. Nu este nimic magic în asta.

Faptul 3. Ordinea metodelor dintr-o clasă nu contează.

Puteți scrie metodele într-o clasă în orice ordine - acest lucru nu va afecta în niciun fel execuția programului. Exemplu:

Cod
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();
   }
}

Faptul 4. Variabilele din interiorul unei metode nu sunt legate în niciun fel de variabilele altor metode.

Ce se intampla in Vegas, ramane in Vegas. Iar variabilele declarate în interiorul unei metode rămân în interiorul metodei.

Variabilele cu aceleași nume pot fi declarate în două metode adiacente, iar aceste variabile nu sunt legate între ele în niciun fel.


4. Numele metodelor

Se știe de mult că cele două probleme cele mai dificile în programare sunt alegerea numelor potrivite pentru metode și alegerea numelor potrivite pentru variabile.

De fapt, aproape o întreagă știință a apărut cu privire la modul de a numi corect metodele. Și fiecare limbaj de programare are propriile standarde. În Java, este obișnuit să urmați aceste principii:

Principiul 1. Numele unei metode ar trebui să descrie pe scurt ceea ce face metoda.

Apoi, un alt programator care vă citește codul se poate baza pe numele metodei pentru a ghici ce face codul. El sau ea nu va trebui să se uite de fiecare dată la codul metodelor apelate. Și scopul metodelor este mai ușor de reținut.

Amintiți-vă că este folosit pentru a „pune programul în stare de adormire” și este folosit pentru a „citi următorul întreg”. Convenabil, nu?Thread.sleep()Scanner.nextInt()

Principiul 2. Numele unei metode poate fi mai multe cuvinte.

Cu toate acestea, există mai multe limitări atunci când faceți acest lucru:

  • Nu puteți avea spații într-un nume de metodă: toate cuvintele sunt scrise împreună.
  • Fiecare cuvânt este scris cu majuscule, cu excepția primului.
  • Numele unei metode începe întotdeauna cu o literă mică

Amintiți-vă printWiFi10Timesmetoda. Ce înseamnă acest nume? „Afișează cuvântul „WiFi” de 10 ori”. Nu ar trebui să includeți o mulțime de cuvinte în numele unei metode: numele ar trebui să reflecte însăși esența sa.

Acest standard pentru metodele de denumire se numește CamelCase (Literele mari sunt ca cocoașele unei cămile).

Principiul 3. Numele unei metode începe cu un verb.

O metodă face întotdeauna ceva, așa că primul cuvânt dintr-un nume de metodă este întotdeauna o acțiune.

Iată câteva nume proaste pentru metode: home, cat, car, train, ...;

Câteva nume bune sunt: run​​, execute, print, read, write,...

Principiul 4. Folosiți numai litere și cifre latine.

Java are suport excelent pentru diferite limbi. Puteți scrie numele variabilelor, metodelor și claselor în rusă, precum și în chineză - totul va funcționa!

Dar! Cât timp ar trebui să studiezi Java, dacă System.out.println()metoda ar fi scrisă în chineză? Mult mai mult decât acum, nu? Acesta este primul punct.

În al doilea rând, multe echipe de dezvoltare software sunt internaționale. Un număr foarte mare de biblioteci Java sunt folosite de programatori din întreaga lume.

Prin urmare, este recomandat să folosiți numai litere și cifre latine în numele metodelor.

Important:
Numele unei metode trebuie să înceapă cu o literă (nu poate începe cu un număr).