1. returnRedegørelsen

Tror du, at du allerede har lært alt om Java-metoder? Uanset hvad du tror, ​​du ved, ved du stadig ikke halvdelen af ​​det.

Lad os starte med noget simpelt. For eksempel har Java en returerklæring , der lader dig øjeblikkeligt afslutte den metode, der kalder den. Her er udtalelsen:

return;

Det er enkelt: det ensomme ord returnefterfulgt af et semikolon. Så snart programmet udfører denne sætning, afsluttes den aktuelle metode med det samme, og opkaldet fortsætter.

Hvis returndet kaldes i mainmetoden, mainslutter metoden straks, og med det hele programmet.

Eksempel:

class Solution
{
   public static void fill(int[] data, int from, int to, int value)
   {


     if (from < 0 || to > data.length)
       return;

     for (int i = from; i < to; i++)
     {
       data[i] = value;
     }
   }

   public static void main(String[] args)
   {
     int[] months = {1, 2, 3, 4, 5, 6, 7, 8 ,9, 10, 11, 12};
     fill(months, 2, 10, 8);
   }
}


Metoden fill udfylder en del af det beståede array med value.
Den del af arrayet, der skal udfyldes, er defineret af indekserne from og to.
Hvis from er mindre end 0eller hvis to er større end længden af ​​arrayet, afsluttes metoden med det samme.

Ovenstående program har en fillmetode, der udfylder det array, der sendes til det, med value. Det fylder ikke hele arrayet, kun den del, der er specificeret af indekserne fromog to.

I begyndelsen af fill ​​metoden kontrolleres de beståede værdier for at sikre, at de er gyldige. Hvis fromer mindre end 0, eller hvis to er større end længden af ​​arrayet, fillafsluttes metoden med det samme (udfører en returnsætning).

Denne returnerklæring er nyttig: praktisk talt alle metoder i Java har en, og her er hvorfor.



2. Metoder med et resultat,void

Husk, at vi engang fandt ud af, at der er udsagn, og der er udtryk . Et udtryk har i modsætning til et udsagn en værdi, der kan bruges et sted.

Og i Java kan metoder have en værdi . Og det er meget gode nyheder: Metoder er ikke kun i stand til at gøre noget baseret på inputparametrene, men også for eksempel at evaluere noget og returnere resultatet af beregningen .

Forresten har du allerede stødt på sådanne metoder:

double delta = Math.abs(d1 - d2);
Metoden abs()returnerer en dobbelt
Scanner console = new Scanner(System.in);
int x = console.nextInt();

Metoden nextInt()returnerer enint
String str = "Hello";
String s2 = str.toUpperCase();

Metoden toUpperCase()returnerer enString
int[] data = {1, 4, 5, 6, 7, 8, 11};
int[] array = Arrays.copyOf(data, 4);

Metoden copyOf()returnerer enint[]

Hver metode kan kun returnere én værdi af én forudbestemt type. Returtypen bestemmes, når metoden er deklareret:

public static Type name(parameters)
{
  method body
}

Hvor name er navnet på metoden, parameters er listen over metodeparametre og type er typen af ​​resultat, som metoden returnerer.

For metoder, der ikke returnerer noget, er der en speciel pladsholdertype: void.

Skriver du din egen metode og ønsker ikke at returnere noget til opkaldsmetoden? Bare erklær metodens type som void, og problemet er løst. Der er også masser af metoder som denne i Java.


3. Returnerer et resultat

Vi har lige fundet ud af, hvordan man deklarerer en metode, der returnerer resultatet af en beregning, men hvordan resulterer vi dette resultat i selve metoden?

Udtalelsen returnhjælper os her endnu en gang. At sende et resultat fra en metode ser sådan ud:

return value;

Hvor returner en erklæring, der afslutter metoden med det samme. Og value er den værdi, som metoden returnerer til den kaldende metode, når den afsluttes. Typen af value​​skal matche det typeangivne i metodedeklarationen.

Eksempel 1. Metoden beregner minimum af to tal:

int min(int a, int b)
{
   if (a < b)
     return a;
   else
     return b;
}
Metoden returnerer minimum to tal.

Hvis a < b
retur a
Ellers
returb

Eksempel 2. Metoden dublerer strengen, der er sendt til den, ngange:

String multiple(String str, int times)
{
   String result = "";
   for (int i = 0; i < times; i++)
     result = result + " "+ str;
   return result;
}
Metoden tager to parametre - en streng og det antal gange, strengen skal gentages.
En tom streng oprettes til det fremtidige resultat.

I en loop med iterationer tilføjes timeset mellemrum og strengen til strengen. Strengen returneres som resultatet af metoden. strresult

result

Eksempel 3: Metoden beregner maksimum af to tal ved hjælp af den ternære operator:

int max(int a, int b)
{
   return (a > b ? a : b);
}
Metoden returnerer maksimalt to tal.

returnere (hvis a > b, så aellers b)