Ett föreläsningsutdrag med en mentor som en del av Codegym University-kursen. Anmäl dig till hela kursen.


"Är du redan här, Amigo? Jag vet att du redan har lärt dig många Java-kommandon. Du har nästan nått min nivå!"

"Är det sant, Diego?"

"Självklart inte, ha-ha. Du har fortfarande mycket att plugga och lära dig göra. Ändå vet du redan tillräckligt för att skriva ganska komplexa program. 10, 20, 30 rader kod i ett program är inte ett särskilt stort program, höger?"

"Jag antar att du har rätt. Speciellt om du sätter lockiga hängslen på separata linjer."

"Men ett program på 100+ rader, nu är det stort. Även vi robotar har ganska svårt att förstå sådan kod. Vad tror du, finns det något du kan göra för att på något sätt förenkla att skriva och läsa program som har mycket kod?

"Jag hoppas verkligen det!"

"Dina förhoppningar är inte förgäves. Det är möjligt att förenkla program, och metoder finns här för att hjälpa oss med detta. De kallas ibland för funktioner .

"Funktioner, metoder... Öh, vad är det?"

"Förenklat uttryckt är en metod en grupp kommandon som har ett unikt namn. Med andra ord lägger vi bara in flera kommandon i en grupp och ger den ett unikt namn. Och det är det — boom — vi har en metod. De flesta ofta grupperas dessa kommandon enligt någon logik för att lösa en liten och specifik uppgift. Till exempel 'en metod för att skriva ut rader från en fil'. Eller 'en metod för att höja ett tal till en exponent'.

"Så, vi delar upp programmet i metoder?"

"Ja, och det förenklar koden.

Exempel:

Utan metod Med en 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");
   }
}

"I programmet i den vänstra kolumnen upprepar vi samma kod tre gånger - vi gjorde detta avsiktligt för att illustrera en punkt. Men i programmet till höger flyttade vi den upprepade koden till en separat metod och gav den ett unikt namn - printWiFi.

Och istället för den omplacerade koden anropar vi printWiFi()metoden 3 gånger.

"När programmet i kolumnen till höger körs, varje gång metoden printWiFi()exekveras, printWiFi()exekveras alla kommandon inuti metoden. Vi skapade precis ett nytt kommando (metod), som kombinerar flera kommandon till en enda grupp.

"All kod kan delas upp i separata metoder. Detta görs för att förenkla saker: tanken är att det är bättre att ha många små metoder än en stor.

"Det är en bra idé att dela upp ett program i metoder.

"Snart kommer du att minnas med förundran hur du brukade skriva program utan att skapa dina egna metoder."

"Jag är redo att lyssna och försöka skriva metoder! Berätta bara hur man gör."

Deklarera en metod i Java

"Hur kan vi deklarera den enklaste metoden? Så här:

public static void name()
{
  method body
}

Var nameär det unika namnet på metoden och method bodyrepresenterar de kommandon som utgör metoden. Innebörden av orden public, staticoch voidkommer att diskuteras senare.

"När vi har skapat en metod kan vi kalla den i våra andra metoder. Ett metodanrop ser ut så här:

name();

"Var namefinns det unika namnet på metoden vi vill anropa, alltså metoden vars kommandon vi vill köra när vi kommer fram till metodanropet.

"När programmet når metodanropet kommer det helt enkelt att gå in i metoden, utföra alla dess kommandon, återgå till den ursprungliga metoden och fortsätta körningen.

"Och nu, Amigo, titta med nya ögon på kommandona som du redan har lärt dig. Till exempel... Kommer det något att tänka på om vad det här egentligen är?"System.out.println()

"Säger du att alla dessa kommandon bara är metoder skrivna av andra programmerare?"

"Inte alla, men många av dem. Ja, precis! Andra skrev dem för att göra våra liv lättare."

"Så public static void main(String[] args)är också en metod... Nu är det mer vettigt!"

"Självklart gör det det! Det är programmering! Det visar sig att huvudmetoden - alfa och omega för programmet - kan innehålla anrop till andra metoder:

Koda Notera
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");
   }
}




Vi kallar print10TimesWiFi()metoden


Vi deklarerar print10TimesWiFimetoden


Vi kallar printWiFi() metoden 10 i en slinga


Vi förklarar printWiFimetoden

Vi visar " " Wi-Fipå skärmen

Fakta om metoder

"Jag har avsatt några användbara fakta om metoder åt dig. Här, njut:

Fakta 1. En metod är alltid en del av en klass.

En metod kan bara deklareras i en klass. En metod kan inte deklareras i en annan metod. En metod kan inte deklareras utanför en klass.

Fakta 2. En metods namn har ingen helig betydelse

Det spelar ingen roll vad metoderna kallas - det påverkar ingenting. Huvudmetoden är en metod precis som alla andra. Det är bara det att detta namn valdes för metoden från vilken Java-maskinen kommer att börja köra programmet. Det finns inget magiskt med det. Med detta sagt är det bättre att välja metodnamn som åtminstone gör det lite tydligt vad de är till för. Jag ska prata om det här lite senare.

Fakta 3. Ordningen på metoderna i en klass spelar ingen roll

Du kan skriva dina metoder i en klass i valfri ordning — detta kommer inte att påverka programmets körning på något sätt. Exempel:

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

Fakta 4. Variablerna i en metod är inte på något sätt relaterade till variablerna i andra metoder

Det som händer i Vegas stannar i Vegas. Och variablerna som deklareras i en metod stannar kvar i metoden.

Variabler med samma namn kan deklareras på två intilliggande metoder, och dessa variabler är inte relaterade till varandra på något sätt.

Metodnamn

"Så... jag lovade att berätta om metodnamn. Det har länge varit känt att de två svåraste problemen med programmering är att välja rätt namn på metoder och att välja rätt namn på variabler."

"Jag trodde aldrig att det var så svårt!"

"Du visste helt enkelt inte så mycket om andras vaga kod, där variabler och metoder har godtyckliga namn. Försök bara lista ut den koden. Faktum är att nästan en hel vetenskap har dykt upp om hur man korrekt namnger metoder. Och varje programmeringsspråk har sina egna standarder.

"I Java är det vanligt att följa dessa principer:

Princip 1. Ett metodnamn ska kort beskriva vad metoden gör.

Då kan en annan programmerare som läser din kod lita på namnet på metoden för att gissa vad koden gör. Han eller hon behöver inte titta på koden för anropade metoder varje gång. Och syftet med metoderna är lättare att komma ihåg.

Används till exempel för att "sätta programmet i viloläge" och används för att "läsa nästa heltal". Bekvämt va?Thread.sleep()Scanner.nextInt()

Princip 2. Ett metodnamn kan vara flera ord.

Det finns dock flera begränsningar när du gör detta:

  • Du kan inte ha mellanslag i ett metodnamn: alla ord skrivs tillsammans.
  • Varje ord är versal, förutom det första.
  • Ett metodnamn börjar alltid med en liten bokstav

Kom ihåg print10TimesWiFimetoden. Vad betyder det namnet? "Visa ordet 'WiFi' 10 gånger". Du bör inte inkludera många ord i namnet på en metod: namnet ska återspegla dess kärna.

Denna standard för namngivningsmetoder kallas CamelCase (de versala bokstäverna är som pucklar på en kamel).

Princip 3. Ett metodnamn börjar med ett verb.

En metod gör alltid något, så det första ordet i ett metodnamn är alltid en handling.

Här är några dåliga namn på metoder: home, cat, car, train, ...;

Några bra namn är: run, execute, print, read, write, ...

Princip 4. Ett metodnamn använder endast latinska bokstäver och siffror.

Java har utmärkt stöd för olika språk. Du kan skriva namnen på variabler, metoder och klasser på ryska såväl som kinesiska — allt kommer att fungera!

Men! Föreställ dig hur länge du skulle behöva studera Java, om metoden System.out.println()var skriven på kinesiska?

Mycket längre än nu, eller hur? Det är den första punkten.

För det andra är många mjukvaruutvecklingsteam internationella. Ett mycket stort antal Java-bibliotek används av programmerare från hela världen.

Därför rekommenderas det att endast använda latinska bokstäver och siffror i metodnamn.

Viktig:

Namnet på en metod måste börja med en bokstav (det kan inte börja med en siffra).

"Det här är alla de grundläggande principerna som styr metodnamn i Java. Lektionen är över nu. Gå och lös uppgifter!"

"Jag springer redan, Diego!"


Ett föreläsningsutdrag med en mentor som en del av Codegym University-kursen. Anmäl dig till hela kursen.