Een fragment uit een lezing met een mentor als onderdeel van de Codegym University-cursus. Schrijf je in voor de volledige cursus.


"Ben je er al, Amigo? Ik weet dat je al veel Java-commando's hebt geleerd. Je hebt bijna mijn niveau bereikt!"

'Is dat waar, Diego?'

"Natuurlijk niet, ha-ha. Je moet nog veel studeren en leren. Toch weet je al genoeg om vrij complexe programma's te schrijven. 10, 20, 30 regels code in een programma is niet een heel groot programma, rechts?"

'Ik denk dat je gelijk hebt. Vooral als je accolades op aparte regels zet.'

"Maar een programma van meer dan 100 regels, dat is groot. Zelfs wij robots hebben nogal moeite om dergelijke code te begrijpen. Wat denk je, is er iets dat je kunt doen om het schrijven en lezen van programma's met veel code op de een of andere manier te vereenvoudigen?

"Ik hoop het oprecht!"

"Uw hoop is niet tevergeefs. Het is mogelijk om programma's te vereenvoudigen, en methoden zijn hier om ons hierbij te helpen. Ze worden soms functies genoemd .

"Functies, methoden... Eh, wat zijn dat?"

"Heel simpel gezegd, een methode is een groep commando's die een unieke naam heeft . Met andere woorden, we stoppen gewoon verschillende commando's in één groep en geven het een unieke naam. En dat is het - boem - we hebben een methode. De meeste vaak zijn deze commando's gegroepeerd volgens een of andere grondgedachte om een ​​kleine en specifieke taak op te lossen, bijvoorbeeld 'een methode om regels uit een bestand af te drukken' of 'een methode om een ​​getal te verheffen tot een exponent'.

"Dus we hebben het programma opgesplitst in methoden?"

"Ja, en het vereenvoudigt de code.

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 verplaatst naar een aparte methode en er een unieke naam aan gegeven - printWiFi.

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

"Wanneer het programma in de kolom aan de rechterkant wordt uitgevoerd, worden elke keer dat de printWiFi()methode wordt uitgevoerd, alle opdrachten binnen de printWiFi()methode uitgevoerd. We hebben zojuist een nieuwe opdracht (methode) gemaakt, waarbij verschillende opdrachten in één groep worden gecombineerd.

"Elke code kan worden opgesplitst in afzonderlijke methoden. Dit wordt gedaan om dingen te vereenvoudigen: het idee is dat het beter is om veel kleine methoden te hebben dan één grote.

"Het is een geweldig idee om een ​​programma op te splitsen in methodes.

"Binnenkort zul je je met verwondering herinneren hoe je vroeger programma's schreef zonder je eigen methoden te maken."

"Ik ben klaar om te luisteren en te proberen methodes te schrijven! Vertel me gewoon hoe ik het moet doen."

Een methode declareren in Java

"Hoe kunnen we de eenvoudigste methode declareren? Hier is hoe:

public static void name()
{
  method body
}

Waar nameis 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, dat wil zeggen 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.

"En nu, Amigo, kijk met nieuwe ogen naar de commando's die je al hebt geleerd. Bijvoorbeeld, . Komt er iets in je op over wat dit werkelijk is?"System.out.println()

"Bedoel je dat al deze commando's slechts methoden zijn die door andere programmeurs zijn geschreven?"

'Niet allemaal, maar veel wel. Ja, precies! Anderen schreven ze om ons leven makkelijker te maken.'

"Dat public static void main(String[] args)geldt ook voor een methode... Nu is het logischer!"

"Natuurlijk wel! Het is programmeren! Het blijkt dat de hoofdmethode - de alfa en omega van het programma - aanroepen naar andere methoden kan 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");
   }
}




We noemen de print10TimesWiFi()methode


We declareren de print10TimesWiFimethode


We noemen de printWiFi() methode 10 in een lus


We declareren de printWiFimethode

We tonen " Wi-Fi" op het scherm

Feiten over methoden

"Ik heb enkele nuttige feiten over methoden voor je opzij gezet. Geniet hier van:

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. Dat gezegd hebbende, is het beter om methodenamen te kiezen die op zijn minst een beetje duidelijk maken waar ze voor zijn. Ik zal hier later over praten.

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.

Methode namen

"Dus... ik beloofde je te vertellen over 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."

"Nooit gedacht dat dat zo moeilijk was!"

"Je wist gewoon niet veel over de vage code van anderen, waar variabelen en methoden willekeurige namen hebben. Probeer die code maar eens te achterhalen. In feite is er bijna een hele wetenschap ontstaan ​​over hoe je methodes correct kunt benoemen. En elke programmeertaal heeft zijn eigen normen.

"Op 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.

Wordt bijvoorbeeld gebruikt om 'het programma in de slaapstand te zetten' en wordt gebruikt om 'het volgende gehele getal te lezen'. Handig, hè?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

Onthoud de print10TimesWiFimethode. 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. Een methodenaam gebruikt 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! Stel je voor hoe lang je Java zou 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).

"Dit zijn alle basisprincipes die de naamgeving van methoden in Java bepalen. De les is nu voorbij. Ga taken oplossen!"

"Ik ren al, Diego!"


Een fragment uit een lezing met een mentor als onderdeel van de Codegym University-cursus. Schrijf je in voor de volledige cursus.