Et foredragsuddrag med en mentor som en del af Codegym University-kurset. Tilmeld dig hele kurset.


"Er du her allerede, Amigo? Jeg ved, at du allerede har lært en masse Java-kommandoer. Du har næsten nået mit niveau!"

"Er det sandt, Diego?"

"Selvfølgelig ikke, ha-ha. Du har stadig masser af at studere og lære at gøre. Alligevel ved du allerede nok til at skrive ret komplekse programmer. 10, 20, 30 linjer kode i et program er ikke et særlig stort program, højre?"

"Jeg tror du har ret. Især hvis du sætter krøllede seler på separate linjer."

"Men et program på 100+ linjer, nu er det stort. Selv os robotter har ret svært ved at forstå sådan en kode. Hvad tror du, er der noget, du kan gøre for på en eller anden måde at forenkle skrivning og læsning af programmer, der har meget kode?

"Det håber jeg inderligt!"

"Dine håb er ikke forgæves. Det er muligt at forenkle programmer, og metoder er her for at hjælpe os med dette. De kaldes nogle gange funktioner .

"Funktioner, metoder... Øh, hvad er de?"

"Helt enkelt sagt, så er en metode en gruppe kommandoer, der har et unikt navn . Med andre ord lægger vi bare flere kommandoer i én gruppe og giver den et unikt navn. Og det er det - boom - vi har en metode. De fleste ofte er disse kommandoer grupperet efter et rationale for at løse en lille og specifik opgave. For eksempel 'en metode til at udskrive linjer fra en fil'. Eller 'en metode til at hæve et tal til en eksponent'.

"Så vi deler programmet op i metoder?"

"Ja, og det forenkler koden.

Eksempel:

Uden 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 gentager vi den samme kode tre gange - vi gjorde dette med vilje for at illustrere et punkt. Men i programmet til højre flyttede vi den gentagne kode til en separat metode og gav den et unikt navn - printWiFi.

Og i stedet for den flyttede kode kalder vi printWiFi()metoden 3 gange.

"Når programmet i kolonnen til højre køres, udføres hver gang metoden printWiFi()udføres, alle kommandoerne inde i printWiFi()metoden. Vi har lige oprettet en ny kommando (metode), der kombinerer flere kommandoer i en enkelt gruppe.

"Enhver kode kan opdeles i separate metoder. Dette gøres for at forenkle tingene: Tanken er, at det er bedre at have mange små metoder end en stor.

”Det er en god idé at dele et program op i metoder.

"Snart vil du med undren huske, hvordan du plejede at skrive programmer uden at lave dine egne metoder."

"Jeg er klar til at lytte og forsøge at skrive metoder! Bare fortæl mig, hvordan man gør det."

Erklæring af en metode i Java

"Hvordan kan vi erklære den enkleste metode? Sådan gør du:

public static void name()
{
  method body
}

Hvor nameer det unikke navn på metoden og method bodyrepræsenterer de kommandoer, der udgør metoden. Betydningen af ​​ordene public, static, og voidvil blive diskuteret senere.

"Når vi har lavet en metode, kan vi kalde den i vores andre metoder. Et metodekald ser sådan ud:

name();

"Hvor nameer det unikke navn på den metode, vi vil kalde, altså den metode, hvis kommandoer vi vil udføre, når vi ankommer til metodekaldet.

"Når programmet når frem til metodekaldet, vil det blot træde ind i metoden, udføre alle dets kommandoer, vende tilbage til den oprindelige metode og fortsætte eksekveringen.

"Og nu, Amigo, se med nye øjne på de kommandoer, som du allerede har lært. For eksempel... Kommer der noget til at tænke på, hvad det her egentlig er?"System.out.println()

"Siger du, at alle disse kommandoer bare er metoder skrevet af andre programmører?"

"Ikke alle, men mange af dem. Ja, præcis! Andre skrev dem for at gøre vores liv lettere."

"Så public static void main(String[] args)er det også en metode... Nu giver det mere mening!"

"Selvfølgelig gør det det! Det er programmering! Det viser sig, at hovedmetoden - alfa og omega af programmet - kan indeholde kald til andre metoder:

Kode Bemærk
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 kalder print10TimesWiFi()metoden


Vi erklærer print10TimesWiFimetoden


Vi kalder printWiFi() metoden 10 i en løkke


Vi erklærer printWiFimetoden

Vi viser " Wi-Fi" på skærmen

Fakta om metoder

"Jeg har afsat nogle nyttige fakta om metoder til dig. Nyd her:

Fakta 1. En metode er altid en del af en klasse.

En metode kan kun erklæres i en klasse. En metode kan ikke erklæres i en anden metode. En metode kan ikke erklæres uden for en klasse.

Faktum 2. En metodes navn har ingen hellig betydning

Det er lige meget, hvad metoder kaldes - det påvirker ikke noget. Hovedmetoden er en metode ligesom alle de andre. Det er bare, at dette navn blev valgt til den metode, hvorfra Java-maskinen vil starte udførelse af programmet. Der er ikke noget magisk over det. Når det er sagt, er det bedre at vælge metodenavne, der i det mindste gør det lidt klart, hvad de er til. Jeg vil tale om dette lidt senere.

Fakta 3. Rækkefølgen af ​​metoder i en klasse er ligegyldig

Du kan skrive dine metoder i en klasse i en hvilken som helst rækkefølge - dette vil ikke påvirke programmets udførelse på nogen måde. 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. Variablerne i en metode er ikke på nogen måde relateret til variablerne i andre metoder

Hvad der sker i Vegas, bliver i Vegas. Og de variable, der er erklæret i en metode, forbliver inde i metoden.

Variabler med samme navne kan deklareres på to tilstødende metoder, og disse variabler er ikke relateret til hinanden på nogen måde.

Metodenavne

"Så... jeg lovede at fortælle dig om metodenavne. Det har længe været kendt, at de to sværeste problemer i programmering er at vælge de rigtige navne til metoder og at vælge de rigtige navne til variabler."

"Jeg troede aldrig, det var så svært!"

"Du vidste bare ikke meget om andres vage kode, hvor variabler og metoder har vilkårlige navne. Prøv bare at finde ud af den kode. Faktisk er der opstået næsten en hel videnskab om, hvordan man korrekt navngiver metoder. Og hvert programmeringssprog har sine egne standarder.

"I Java er det sædvanligt at følge disse principper:

Princip 1. Et metodenavn skal kort beskrive, hvad metoden gør.

Så kan en anden programmør, der læser din kode, stole på navnet på metoden for at gætte, hvad koden gør. Han eller hun behøver ikke at se på koden for kaldte metoder hver gang. Og formålet med metoderne er nemmere at huske.

Bruges for eksempel til at 'sætte programmet i dvale' og bruges til at 'læse det næste heltal'. Praktisk, hva'?Thread.sleep()Scanner.nextInt()

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

Der er dog flere begrænsninger, når du gør dette:

  • Du kan ikke have mellemrum i et metodenavn: alle ord er skrevet sammen.
  • Hvert ord skrives med stort, undtagen det første.
  • Et metodenavn starter altid med et lille bogstav

Husk print10TimesWiFimetoden. Hvad betyder det navn? "Vis ordet 'WiFi' 10 gange". Du bør ikke inkludere mange ord i navnet på en metode: navnet skal afspejle dens essens.

Denne standard for navngivningsmetoder kaldes CamelCase (de store bogstaver er som puklerne på en kamel).

Princip 3. Et metodenavn starter med et verbum.

En metode gør altid noget, så det første ord i et metodenavn er altid en handling.

Her er nogle dårlige navne på metoder: home, cat, car, train, ...;

Nogle gode navne er: run, execute, print, read, write, ...

Princip 4. Et metodenavn bruger kun latinske bogstaver og tal.

Java har fremragende understøttelse af forskellige sprog. Du kan skrive navnene på variabler, metoder og klasser på russisk såvel som kinesisk - alt vil fungere!

Men! Forestil dig, hvor længe du ville skulle studere Java, hvis metoden System.out.println()var skrevet på kinesisk?

Meget længere end nu, ikke? Det er det første punkt.

For det andet er mange softwareudviklingsteams internationale. Et meget stort antal Java-biblioteker bruges af programmører fra hele verden.

Derfor anbefales det kun at bruge latinske bogstaver og tal i metodenavne.

Vigtig:

Navnet på en metode skal begynde med et bogstav (det kan ikke begynde med et tal).

"Dette er alle de grundlæggende principper, der styrer metodenavngivning i Java. Lektionen er slut nu. Løs opgaver!"

"Jeg løber allerede, Diego!"


Et foredragsuddrag med en mentor som en del af Codegym University-kurset. Tilmeld dig hele kurset.