1. Funksjoner/metoder i Java

Du har allerede lært mange Java-kommandoer, noe som betyr at du kan skrive ganske komplekse programmer. 10, 20, 30 linjer med kode i et program er ikke et veldig stort program, ikke sant?

Men et program på 100+, nå er det stort, og det kan være ganske vanskelig å forstå koden. Er det noe du kan gjøre for på en eller annen måte å forenkle skrive- og leseprogrammer som har mye kode?

Ja, og metoder (eller funksjoner) vil hjelpe oss med dette.

Hva er en metode? For å si det veldig enkelt, er en metode en gruppe kommandoer som har et unikt navn . Med andre ord, vi legger bare flere kommandoer i én gruppe og gir den et unikt navn. Og det er det - metoden er klar.

Eksempel:

Uten metode Med en metode
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 venstre kolonne gjentar vi den samme koden tre ganger - vi gjorde dette med vilje for å illustrere et poeng. Men i programmet til høyre flyttet vi den gjentatte koden til en egen metode og ga den et unikt navn - printWiFi.

Og i stedet for den flyttede koden, kaller vi printWiFi()metoden 3 ganger.

Når programmet i kolonnen til høyre kjøres, utføres hver gang metoden printWiFi()utføres, alle kommandoene inne i printWiFi()metoden. Vi har nettopp opprettet en ny kommando (metode), som kombinerer flere kommandoer til en enkelt gruppe.

Enhver kode kan deles inn i separate metoder. Dette gjøres for å forenkle ting: Tanken er at det er bedre å ha mange små metoder enn en stor. Du vil snart bli overrasket over at det noen gang var en tid da du skrev dine egne programmer uten å skrive dine egne metoder.


2. Erklære en metode i Java

Så hvordan skriver du metoden din riktig?

public static void name()
{
  method body
}

Det er mange nyanser å vurdere når du erklærer (oppretter) en metode, men vi starter med det grunnleggende. Hvordan kan vi erklære den enkleste metoden? En enkel metodeerklæring ser slik ut:

Hvor name er det unike navnet på metoden og method bodyrepresenterer kommandoene som utgjør metoden. Betydningen av ordene public, static, og voidvil bli diskutert senere.

Etter at vi har laget en metode, kan vi kalle den i våre andre metoder. Et metodekall ser slik ut:

name();

Hvor nameer det unike navnet på metoden vi ønsker å kalle, dvs. metoden hvis kommandoer vi ønsker å utføre når vi kommer til metodekallet.

Når programmet når metodekallet, vil det ganske enkelt gå inn i metoden, utføre alle kommandoene, gå tilbake til den opprinnelige metoden og fortsette kjøringen.

Som du sikkert har gjettet nå, er de fleste kommandoene vi har lært så langt bare metoder skrevet av andre programmerere for å gjøre livet vårt enklere: , , etc.System.out.println()Thread.sleep()

En metode kan inneholde kall til andre metoder:

Kode Merk
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");
   }
}




Kall printWiFi10Times()metoden


Erklær printWiFi10Timesmetoden


Kall printWiFi() metoden 10 ganger i en sløyfe


Erklær printWiFimetoden

Vis tekst på skjermen:
Wi-Fi

3. Fakta om metoder

Her er noen flere fakta om metoder:

Fakta 1. En metode er alltid en del av en klasse.

En metode kan bare deklareres i en klasse. En metode kan ikke deklareres i en annen metode. En metode kan ikke erklæres utenfor en klasse.

Fakta 2. En metodes navn har ingen hellig betydning.

Det spiller ingen rolle hva metodene kalles - det påvirker ingenting. Hovedmetoden er en metode akkurat som alle de andre. Det er bare at dette navnet ble valgt for metoden som Java-maskinen vil starte kjøringen av programmet fra. Det er ikke noe magisk med det.

Fakta 3. Rekkefølgen på metoder i en klasse spiller ingen rolle.

Du kan skrive metodene dine i en klasse i hvilken som helst rekkefølge - dette vil ikke påvirke programmets kjøring på noen måte. Eksempel:

Kode
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. Variablene i en metode er ikke på noen måte relatert til variablene til andre metoder.

Det som skjer i Vegas blir i Vegas. Og variablene som er deklarert i en metode forblir inne i metoden.

Variabler med samme navn kan deklareres i to tilstøtende metoder, og disse variablene er ikke relatert til hverandre på noen måte.


4. Metodenavn

Det har lenge vært kjent at de to vanskeligste problemene ved programmering er å velge riktige navn på metoder og å velge riktige navn på variabler.

Faktisk har nesten en hel vitenskap dukket opp om hvordan man riktig navngir metoder. Og hvert programmeringsspråk har sine egne standarder. I Java er det vanlig å følge disse prinsippene:

Prinsipp 1. Et metodenavn skal kort beskrive hva metoden gjør.

Da kan en annen programmerer som leser koden din stole på navnet på metoden for å gjette hva koden gjør. Han eller hun trenger ikke å se på koden for kalte metoder hver gang. Og hensikten med metodene er lettere å huske.

Husk som brukes til å 'sette programmet i dvale' og brukes til å 'lese neste heltall'. Praktisk, ikke sant?Thread.sleep()Scanner.nextInt()

Prinsipp 2. Et metodenavn kan være flere ord.

Det er imidlertid flere begrensninger når du gjør dette:

  • Du kan ikke ha mellomrom i et metodenavn: alle ord skrives sammen.
  • Hvert ord er stort, bortsett fra det første.
  • Et metodenavn starter alltid med en liten bokstav

Husk printWiFi10Timesmetoden. Hva betyr det navnet? "Vis ordet 'WiFi' 10 ganger". Du bør ikke inkludere mange ord i navnet på en metode: navnet skal gjenspeile selve essensen.

Denne standarden for navngivningsmetoder kalles CamelCase (de store bokstavene er som pukler på en kamel).

Prinsipp 3. Et metodenavn starter med et verb.

En metode gjør alltid noe, så det første ordet i et metodenavn er alltid en handling.

Her er noen dårlige navn på metoder: home, cat, car, train, ...;

Noen gode navn er: run, execute, print, read, write, ...

Prinsipp 4. Bruk kun latinske bokstaver og tall.

Java har utmerket støtte for forskjellige språk. Du kan skrive navn på variabler, metoder og klasser på russisk så vel som kinesisk - alt vil fungere!

Men! Hvor lenge ville du måtte studere Java hvis metoden System.out.println()var skrevet på kinesisk? Mye lenger enn nå, ikke sant? Det er det første punktet.

For det andre er mange programvareutviklingsteam internasjonale. Et svært stort antall Java-biblioteker brukes av programmerere fra hele verden.

Derfor anbefales det å bruke kun latinske bokstaver og tall i metodenavn.

Viktig:
Navnet på en metode må begynne med en bokstav (det kan ikke begynne med et tall).