1. Funktioner/metoder i Java

Du har allerede lært en masse Java-kommandoer, hvilket betyder, at du kan skrive nogle ret komplekse programmer. 10, 20, 30 linjer kode i et program er ikke et særlig stort program, vel?

Men et program på 100+, nu er det stort, og det kan være ret svært at forstå koden. Er der noget, du kan gøre for på en eller anden måde at forenkle skrive- og læseprogrammer, der har meget kode?

Ja, og metoder (eller funktioner) vil hjælpe os med dette.

Hvad er en metode? Sagt meget enkelt er en metode en gruppe af 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 - metoden er klar.

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. Du vil hurtigt blive overrasket over, at der nogensinde var et tidspunkt, hvor du skrev dine egne programmer uden at skrive dine egne metoder.


2. Erklæring af en metode i Java

Så hvordan skriver du din metode korrekt?

public static void name()
{
  method body
}

Der er masser af nuancer at overveje, når du erklærer (opretter) en metode, men vi starter med det grundlæggende. Hvordan kan vi erklære den enkleste metode? En simpel metodeerklæring ser sådan ud:

Hvor name er 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 kommer frem til metodekaldet.

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

Som du sikkert har gættet nu, er de fleste af de kommandoer, vi har lært indtil videre, bare metoder skrevet af andre programmører for at gøre vores liv lettere: , , osv.System.out.println()Thread.sleep()

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




Kald printWiFi10Times()metoden


Erklær printWiFi10Timesmetoden


Kald printWiFi() metoden 10 gange i en løkke


Erklær printWiFimetoden

Vis tekst på skærmen:
Wi-Fi

3. Fakta om metoder

Her er nogle flere fakta om metoder:

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.

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.


4. Metodenavne

Det har længe været kendt, at de to sværeste problemer i programmering er at vælge de rigtige navne på metoder og at vælge de rigtige navne til variabler.

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.

Husk, der bruges til at 'sætte programmet i dvale' og bruges til at 'læse det næste heltal'. Praktisk, ikke?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 printWiFi10Timesmetoden. 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. Brug 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! Hvor længe skulle du 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).