1. Functies/methoden in Java

Je hebt al veel Java-commando's geleerd, wat betekent dat je behoorlijk complexe programma's kunt schrijven. 10, 20, 30 regels code in een programma is geen erg groot programma, toch?

Maar een programma van meer dan 100, dat is groot, en het kan nogal moeilijk zijn om de code te begrijpen. Is er iets dat u kunt doen om het schrijven en lezen van programma's met veel code op de een of andere manier te vereenvoudigen?

Ja, en methoden (of functies) zullen ons hierbij helpen.

Wat is een methode? Simpel gezegd, een methode is een groep commando's die een unieke naam heeft . Met andere woorden, we hebben gewoon verschillende commando's in één groep gestopt en deze een unieke naam gegeven. En dat is alles - de methode is klaar.

Voorbeeld:

Zonder methode Met een methode
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");
   }
}

In het programma in de linkerkolom herhalen we dezelfde code drie keer — we deden dit met opzet om een ​​punt te illustreren. Maar in het programma aan de rechterkant hebben we de herhaalde code naar een aparte methode verplaatst en deze een unieke naam gegeven — printWiFi.

En in plaats van de verplaatste code roepen we de printWiFi()methode 3 keer aan.

Wanneer het programma in de rechterkolom wordt uitgevoerd, worden elke keer dat de printWiFi()methode wordt uitgevoerd, alle opdrachten binnen de printWiFi()methode uitgevoerd. We hebben zojuist een nieuw commando (methode) gemaakt, waarbij verschillende commando's in één groep zijn gecombineerd.

Elke code kan worden opgesplitst in afzonderlijke methoden. Dit wordt gedaan om de zaken te vereenvoudigen: het idee is dat het beter is om veel kleine methoden te hebben dan één grote. Het zal je al snel verbazen dat er ooit een tijd was dat je je eigen programma's schreef zonder je eigen methodes te schrijven.


2. Een methode declareren in Java

Dus hoe schrijf je je methode correct?

public static void name()
{
  method body
}

Er zijn tal van nuances waarmee rekening moet worden gehouden bij het declareren (creëren) van een methode, maar we beginnen bij de basis. Hoe kunnen we de eenvoudigste methode declareren? Een eenvoudige methodedeclaratie ziet er als volgt uit:

Waar name is de unieke naam van de methode en method bodyvertegenwoordigt de opdrachten waaruit de methode bestaat. De betekenis van de woorden public, static, en voidwordt later besproken.

Nadat we een methode hebben gemaakt, kunnen we deze in onze andere methoden aanroepen. Een methodeaanroep ziet er als volgt uit:

name();

Waar nameis de unieke naam van de methode die we willen aanroepen, dwz de methode waarvan we de commando's willen uitvoeren wanneer we bij de methodeaanroep aankomen.

Wanneer het programma de methodeaanroep bereikt, stapt het gewoon in de methode, voert al zijn opdrachten uit, keert terug naar de oorspronkelijke methode en gaat verder met de uitvoering.

Zoals je waarschijnlijk al geraden hebt, zijn de meeste commando's die we tot nu toe hebben geleerd, slechts methoden die door andere programmeurs zijn geschreven om ons leven gemakkelijker te maken: , , etc.System.out.println()Thread.sleep()

Een methode kan aanroepen naar andere methoden bevatten:

Code Opmerking
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");
   }
}




Roep de printWiFi10Times()methode


aan Declareer de printWiFi10Timesmethode


Roep de printWiFi() methode 10 keer achter elkaar aan


Declareer de printWiFimethode

Toon tekst op het scherm:
Wi-Fi

3. Feiten over methoden

Hier zijn wat meer feiten over methoden:

Feit 1. Een methode maakt altijd deel uit van een klasse.

Een methode kan alleen in een klasse worden gedeclareerd. Een methode kan niet binnen een andere methode worden gedeclareerd. Een methode kan niet buiten een klasse gedeclareerd worden.

Feit 2. De naam van een methode heeft geen heilige betekenis.

Het maakt niet uit hoe methoden worden genoemd - dat heeft nergens invloed op. De hoofdmethode is een methode zoals alle andere. Deze naam is alleen gekozen voor de methode van waaruit de Java-machine de uitvoering van het programma zal starten. Er is niets magisch aan.

Feit 3. De volgorde van methoden in een klasse doet er niet toe.

U kunt uw methoden in een willekeurige volgorde in een klasse schrijven - dit heeft op geen enkele manier invloed op de uitvoering van het programma. Voorbeeld:

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

Feit 4. De variabelen binnen één methode zijn op geen enkele manier gerelateerd aan de variabelen van andere methoden.

Wat in Vegas gebeurt blijft in Vegas. En de variabelen die binnen een methode worden gedeclareerd, blijven binnen de methode.

Variabelen met dezelfde naam kunnen op twee aangrenzende manieren worden gedeclareerd en deze variabelen zijn op geen enkele manier aan elkaar gerelateerd.


4. Methodenamen

Het is al lang bekend dat de twee moeilijkste problemen bij het programmeren het kiezen van de juiste namen voor methoden en het kiezen van de juiste namen voor variabelen zijn.

In feite is er bijna een hele wetenschap ontstaan ​​over het correct benoemen van methoden. En elke programmeertaal heeft zijn eigen standaarden. In Java is het gebruikelijk om deze principes te volgen:

Principe 1. Een methodenaam moet in het kort beschrijven wat de methode doet.

Dan kan een andere programmeur die uw code leest, vertrouwen op de naam van de methode om te raden wat de code doet. Hij of zij hoeft niet elke keer naar de code van aangeroepen methoden te kijken. En het doel van de methoden is gemakkelijker te onthouden.

Bedenk dat wordt gebruikt om 'het programma in de slaapstand te zetten' en wordt gebruikt om 'het volgende gehele getal te lezen'. Handig toch?Thread.sleep()Scanner.nextInt()

Principe 2. Een methodenaam kan uit meerdere woorden bestaan.

Er zijn echter verschillende beperkingen wanneer u dit doet:

  • U kunt geen spaties in een methodenaam hebben: alle woorden worden samen geschreven.
  • Elk woord krijgt een hoofdletter, behalve het eerste.
  • Een methodenaam begint altijd met een kleine letter

Roep de printWiFi10Timesmethode op. Wat betekent die naam? "Laat het woord 'WiFi' 10 keer zien" . Je moet niet veel woorden in de naam van een methode opnemen: de naam moet de essentie ervan weerspiegelen.

Deze standaard voor naamgevingsmethoden wordt CamelCase genoemd (de hoofdletters zijn als de bulten van een kameel).

Principe 3. Een methodenaam begint met een werkwoord.

Een methode doet altijd iets, dus het eerste woord in een methodenaam is altijd een actie.

Hier zijn enkele slechte namen voor methoden: home, cat, car, train, ...;

Enkele goede namen zijn: run, execute, print, read, write, ...

Principe 4. Gebruik alleen Latijnse letters en cijfers.

Java heeft uitstekende ondersteuning voor verschillende talen. U kunt de namen van variabelen, methoden en klassen zowel in het Russisch als in het Chinees schrijven — alles werkt!

Maar! Hoe lang zou je Java moeten bestuderen als de System.out.println()methode in het Chinees was geschreven? Veel langer dan nu, toch? Dat is het eerste punt.

Ten tweede zijn veel softwareontwikkelingsteams internationaal. Een zeer groot aantal Java-bibliotheken wordt gebruikt door programmeurs van over de hele wereld.

Daarom wordt aanbevolen om alleen Latijnse letters en cijfers in methodenamen te gebruiken.

Belangrijk:
De naam van een methode moet met een letter beginnen (de naam mag niet met een cijfer beginnen).