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


"Du igen, Amigo. Nå, hej."

"Det ser ud til, at du ikke er særlig glad for at se mig, Diego?"

"Jeg har fået det indtryk, at du tror, ​​at du allerede har lært alt, hvad der er at vide om metoder i Java."

"Åh, det gør jeg ikke..."

"Det tror jeg ikke! Du kender ikke engang halvdelen af ​​det."

"Selvfølgelig er jeg ikke uenig...

"Okay, nok snak. Det er tid til at starte. Og vi starter med noget simpelt. For eksempel det faktum, at Java har en returerklæring . Det giver dig mulighed for øjeblikkeligt at afslutte en metode, som den kaldes i. Her er erklæringen:

return;

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

"Hvis returndet kaldes i mainmetoden, mainslutter metoden med det samme, 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 fylder 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 toer større end længden af ​​arrayet, fillafsluttes metoden med det samme (udfører en returnsætning)."

"Forstår det. Er det alt, hvad denne udtalelse gør?"

"Faktisk returner udsagnet mere brugbart, end du tror. Det er så nyttigt, at det findes i næsten alle metoder i Java. Og nu vil jeg føre dig til en forståelse af, hvorfor det er sådan.

Metoder med resultat,void

"Du kan sikkert huske, at der er udsagn, og der er udtryk . Hvad er forskellen på dem?"

"Hvis jeg ikke tager fejl, har et udtryk, i modsætning til et udsagn, en betydning, der kan bruges et sted."

"Korrekt. Og i Java kan metoder også 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 regnestykket .

"Du har forresten 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 erklæres:

public static Type name(parameters)
{
  method body
}

Hvor nameer navnet på metoden, parameterser listen over metodeparametre og typeer typen af ​​resultat, som metoden returnerer.

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

"Med andre ord, hvis jeg skriver min metode og ikke ønsker at returnere noget, så erklærer jeg typen af ​​metode til at være void, og det er det?"

"Jep. Og jeg må også sige, at Java har ret mange af den slags metoder.

Returnerer et resultat

"Jeg fandt ud af, hvordan man deklarerer en metode, der returnerer resultatet af en beregning/arbejde. Hvordan returnerer jeg resultatet fra selve metoden?"

"Det er et gyldigt spørgsmål. returnUdsagnet hjælper os her igen. At videregive et resultat fra en metode ser sådan ud:

return value;

" returnSætningen vil afslutte metoden med det samme. Og valuedet er det, metoden skal vende tilbage til den kaldende metode, når den afsluttes. Typen af value​​skal matche det Typespecificerede i metodeerklæringen. Her er nogle eksempler for at forstærke det, du har lært:

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)

"Fremragende. Metoder er min nye superkraft!"

"Kun hvis du øver dig nok i praktiske opgaver. Over and out."