1. Funktioner/metoder i Java

Du har redan lärt dig massor av Java-kommandon, vilket betyder att du kan skriva några ganska komplexa program. 10, 20, 30 rader kod i ett program är inte ett särskilt stort program, eller hur?

Men ett program på 100+, nu är det stort, och det kan vara ganska svårt att förstå koden. Finns det något du kan göra för att på något sätt förenkla skriv- och läsprogram som har mycket kod?

Ja, och metoder (eller funktioner) kommer att hjälpa oss med detta.

Vad är en metod? Enkelt 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 — metoden är klar.

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 har precis skapat ett nytt kommando (metod), som kombinerar flera kommandon till en enda grupp.

Vilken kod som helst 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. Du kommer snart att bli förvånad över att det någonsin fanns en tid då du skrev dina egna program utan att skriva dina egna metoder.


2. Deklarera en metod i Java

Så hur skriver du din metod korrekt?

public static void name()
{
  method body
}

Det finns många nyanser att tänka på när man deklarerar (skapar) en metod, men vi börjar med grunderna. Hur kan vi deklarera den enklaste metoden? En enkel metoddeklaration ser ut så här:

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.

Efter att 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, dvs 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.

Som du antagligen gissat vid det här laget är de flesta av kommandona vi har lärt oss hittills bara metoder skrivna av andra programmerare för att göra vårt liv enklare: , , etc.System.out.println()Thread.sleep()

En metod 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");
   }
}




Anropa printWiFi10Times()metoden


Deklarera printWiFi10Timesmetoden


Anropa printWiFi() metoden 10 gånger i en slinga


Deklarera printWiFimetoden

Visa text på skärmen:
Wi-Fi

3. Fakta om metoder

Här är lite mer fakta om metoder:

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.

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.


4. Metodnamn

Det har länge varit känt att de två svåraste problemen inom programmering är att välja rätt namn på metoder och att välja rätt namn på variabler.

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.

Kom ihåg att det används för att "sätta programmet i viloläge" och används för att "läsa nästa heltal". Bekvämt, eller hur?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 printWiFi10Timesmetoden. 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. Använd 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! Hur länge skulle du behöva studera Java om System.out.println()metoden 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).