1. Funkciók/metódusok Java nyelven

Már sok Java-parancsot megtanultál, ami azt jelenti, hogy tudsz írni néhány meglehetősen összetett programot. 10, 20, 30 sornyi kód egy programban nem túl nagy program, igaz?

De egy 100+ program, most akkora, és meglehetősen nehéz lehet megérteni a kódot. Van valami, amivel leegyszerűsítheti a sok kódot tartalmazó programok írását és olvasását?

Igen, és a módszerek (vagy függvények) segítenek ebben.

Mi az a módszer? Nagyon leegyszerűsítve a metódus olyan parancsok csoportja, amelyeknek egyedi neve van . Más szóval, csak több parancsot helyezünk egy csoportba, és egyedi nevet adunk neki. És ennyi – a módszer készen áll.

Példa:

Módszer nélkül Egy módszerrel
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");
   }
}

A bal oldali oszlopban lévő programban háromszor ismételjük meg ugyanazt a kódot – ezt szándékosan tettük egy pont illusztrálására. De a jobb oldali programban az ismétlődő kódot áthelyeztük egy külön metódusba, és egyedi nevet adtunk neki - printWiFi.

És az áthelyezett kód helyett printWiFi()háromszor hívjuk meg a metódust.

A jobb oldali oszlopban lévő program futtatásakor a printWiFi()metódus minden egyes végrehajtásakor a metóduson belüli összes parancs printWiFi()végrehajtásra kerül. Most hoztunk létre egy új parancsot (módszert), amely több parancsot egyetlen csoportba egyesített.

Bármely kód felosztható külön metódusokra. Ez azért van, hogy leegyszerűsítsék a dolgokat: az ötlet az, hogy jobb, ha sok kicsi módszer van, mint egy nagy. Hamarosan meg fog lepődni, hogy valaha is saját programokat írt anélkül, hogy saját módszereit írta volna.


2. Metódus deklarálása Java nyelven

Tehát hogyan írja le helyesen a módszert?

public static void name()
{
  method body
}

A metódus deklarálásakor (létrehozásakor) rengeteg árnyalatot kell figyelembe venni, de kezdjük az alapoknál. Hogyan deklarálhatjuk a legegyszerűbb módszert? Egy egyszerű metódus deklaráció így néz ki:

Hol name található a metódus egyedi neve, és method bodya módszert alkotó parancsokat jelöli. publicA , staticés szavak jelentéséről voidkésőbb lesz szó.

Miután létrehoztunk egy metódust, hívhatjuk a többi módszerünkben. A metódushívás így néz ki:

name();

Hol nametalálható a meghívni kívánt metódus egyedi neve, vagyis annak a metódusnak, amelynek parancsait végre akarjuk hajtani, amikor a metódushíváshoz érkezünk.

Amikor a program eléri a metódushívást, egyszerűen belép a metódusba, végrehajtja az összes parancsát, visszatér az eredeti metódushoz, és folytatja a végrehajtást.

Amint azt már valószínűleg sejti, az eddig megtanult parancsok többsége csak más programozók által írt módszerek, amelyek megkönnyítik az életünket: , , stb.System.out.println()Thread.sleep()

Egy metódus tartalmazhat más metódusok hívását is:

Kód jegyzet
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");
   }
}




printWiFi10Times()A metódus meghívása A metódus


deklarálása Hívja meg a  metódust 10-szer egy ciklusban A metódus deklarálása Szöveg megjelenítése a képernyőn: printWiFi10Times


printWiFi()


printWiFi

Wi-Fi

3. Tények a módszerekről

Íme néhány további tény a módszerekről:

1. tény. A metódus mindig egy osztály része.

Metódus csak osztályban deklarálható. Egy metódus nem deklarálható másik metóduson belül. Metódus nem deklarálható osztályon kívül.

2. tény. Egy módszer nevének nincs szent jelentése.

Nem számít, milyen módszereket hívnak – ez semmit nem befolyásol. A fő módszer egy olyan módszer, mint az összes többi. Csak ezt a nevet választották annak a metódusnak, amelytől a Java gép elindítja a program végrehajtását. Nincs benne semmi varázslatos.

3. tény. A metódusok sorrendje egy osztályban nem számít.

A metódusokat bármilyen sorrendben beírhatja egy osztályba – ez semmilyen módon nem befolyásolja a program végrehajtását. Példa:

Kód
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();
   }
}

4. tény. Az egyik metóduson belüli változók semmilyen módon nem kapcsolódnak más módszerek változóihoz.

Ami Vegasban történik, az Vegasban marad. A metóduson belül deklarált változók pedig a metóduson belül maradnak.

Az azonos nevű változók két szomszédos metódusban deklarálhatók, és ezek a változók semmilyen módon nem kapcsolódnak egymáshoz.


4. Módszerek nevei

Régóta ismert, hogy a programozás két legnehezebb problémája a metódusnevek és a változók megfelelő nevének kiválasztása.

Valójában szinte egy egész tudomány jelent meg a módszerek helyes megnevezésével kapcsolatban. És minden programozási nyelvnek megvannak a saját szabványai. A Java-ban a következő elveket szokás követni:

Alapelv 1. A metódusnévnek röviden le kell írnia a metódus működését.

Ezután egy másik programozó, aki olvassa a kódot, a módszer nevére támaszkodhat, hogy kitalálja, mit csinál a kód. Nem kell minden alkalommal megnéznie a hívott metódusok kódját. A módszerek célja pedig könnyebben megjegyezhető.

Emlékezzünk vissza, hogy „a program alvó állapotba helyezésére” és „a következő egész szám beolvasására” használják. Kényelmes, igaz?Thread.sleep()Scanner.nextInt()

2. alapelv. Egy metódusnév több szóból állhat.

Ennek végrehajtására azonban számos korlátozás vonatkozik:

  • A metódus nevében nem lehet szóköz: minden szó egybe van írva.
  • Minden szó nagybetűvel van írva, kivéve az elsőt.
  • A metódus neve mindig kisbetűvel kezdődik

Emlékezzünk vissza a printWiFi10Timesmódszerre. Mit jelent ez a név? „A „WiFi” szó megjelenítése 10-szer. Nem szabad sok szót beletenni egy metódus elnevezésébe: a névnek tükröznie kell a módszer lényegét.

Az elnevezési módszereknek ezt a szabványát CamelCase-nek hívják (A nagybetűk olyanok, mint a teve púpjai).

3. alapelv. A metódus neve igével kezdődik.

A metódus mindig csinál valamit, így a metódusnév első szava mindig cselekvés.

Íme néhány rossz név a metódusoknak: home, cat, car, train, ...;

Néhány jó név: run, execute, print, read, write, ...

4. alapelv. Csak latin betűket és számokat használjon.

A Java kiválóan támogatja a különböző nyelveket. A változók, metódusok és osztályok nevét oroszul és kínaiul is beírhatja – minden működni fog!

De! Mennyi ideig kellene tanulnod a Java-t, ha a System.out.println()módszert kínaiul írták volna? Sokkal tovább, mint most, igaz? Ez az első pont.

Másodszor, sok szoftverfejlesztő csapat nemzetközi. Nagyon sok Java könyvtárat használnak a programozók a világ minden tájáról.

Ezért ajánlatos csak latin betűket és számokat használni a metódusnevekben.

Fontos:
A módszer nevének betűvel kell kezdődnie (nem kezdődhet számmal).