En forelesningsbit med en mentor som en del av Codegym University-kurset. Meld deg på hele kurset.


"Er du her allerede, Amigo? Jeg vet at du allerede har lært mange Java-kommandoer. Du har nesten nådd mitt nivå!"

"Er det sant, Diego?"

"Selvfølgelig ikke, ha-ha. Du har fortsatt mye å studere og lære å gjøre. Likevel vet du allerede nok til å skrive ganske komplekse programmer. 10, 20, 30 linjer med kode i et program er ikke et veldig stort program, Ikke sant?"

"Jeg antar at du har rett. Spesielt hvis du setter krøllete seler på separate linjer."

"Men et program på 100+ linjer, nå er det stort. Selv oss roboter har ganske vanskelig for å forstå slik kode. Hva tror du, er det noe du kan gjøre for på en eller annen måte å forenkle skriving og lesing av programmer som har mye kode?

"Jeg håper inderlig det!"

"Dine håp er ikke forgjeves. Det er mulig å forenkle programmer, og metoder er her for å hjelpe oss med dette. De kalles noen ganger funksjoner .

"Funksjoner, metoder... Uh, hva er de?"

"For å si det veldig enkelt, er en metode en gruppe kommandoer som har et unikt navn . Med andre ord, vi legger bare flere kommandoer inn i en gruppe og gir den et unikt navn. Og det er det - boom - vi har en metode. De fleste ofte er disse kommandoene gruppert i henhold til en begrunnelse for å løse en liten og spesifikk oppgave. For eksempel 'en metode for å skrive ut linjer fra en fil'. Eller 'en metode for å heve et tall til en eksponent'.

"Så vi deler opp programmet i metoder?"

"Ja, og det forenkler koden.

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 laget en ny kommando (metode), som kombinerer flere kommandoer til en enkelt gruppe.

"Enhver kode kan deles opp i separate metoder. Dette gjøres for å forenkle ting: Tanken er at det er bedre å ha mange små metoder enn en stor.

"Det er en god idé å dele et program inn i metoder.

"Snart vil du huske med undring hvordan du pleide å skrive programmer uten å lage dine egne metoder."

"Jeg er klar til å lytte og prøve å skrive metoder! Bare fortell meg hvordan jeg gjør det."

Erklære en metode i Java

"Hvordan kan vi deklarere den enkleste metoden? Slik gjør du:

public static void name()
{
  method body
}

Hvor nameer 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, altså 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.

"Og nå, Amigo, se med nye øyne på kommandoene du allerede har lært. For eksempel. Kommer det noe til tankene om hva dette egentlig er?"System.out.println()

"Sier du at alle disse kommandoene bare er metoder skrevet av andre programmerere?"

"Ikke alle, men mange av dem. Ja, akkurat! Andre skrev dem for å gjøre livene våre lettere."

"Så public static void main(String[] args)er også en metode... Nå gir det mer mening!"

"Selvfølgelig gjør det det! Det er programmering! Det viser seg at hovedmetoden – alfa og omega til programmet – 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");
   }
}




Vi kaller print10TimesWiFi()metoden


Vi erklærer print10TimesWiFimetoden


Vi kaller printWiFi() metoden 10 i en loop


Vi erklærer printWiFimetoden

Vi viser " Wi-Fi" på skjermen

Fakta om metoder

"Jeg har satt til side noen nyttige fakta om metoder for deg. Her, nyt:

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. Når det er sagt, er det bedre å velge metodenavn som i det minste gjør det litt klart hva de er til for. Jeg skal snakke om dette litt senere.

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.

Metodenavn

"Så... jeg lovet å fortelle deg om metodenavn. Det har lenge vært kjent at de to vanskeligste problemene i programmering er å velge riktige navn på metoder og å velge riktige navn på variabler."

"Jeg trodde aldri det var så vanskelig!"

"Du visste bare ikke så mye om andres vage kode, der variabler og metoder har vilkårlige navn. Bare prøv å finne ut den koden. 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.

Brukes for eksempel 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 print10TimesWiFimetoden. 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. Et metodenavn bruker 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! Tenk deg hvor lenge du måtte studere Java hvis System.out.println()metoden 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).

"Dette er alle de grunnleggende prinsippene som styrer metodenavning i Java. Leksjonen er over nå. Gå og løs oppgaver!"

"Jeg løper allerede, Diego!"


En forelesningsbit med en mentor som en del av Codegym University-kurset. Meld deg på hele kurset.