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


"Du igjen, Amigo. Vel, hei."

"Det ser ut til at du ikke er veldig glad for å se meg, Diego?"

"Jeg har fått inntrykk av at du tror at du allerede har lært alt som er å vite om metoder i Java."

"Å, jeg gjør ikke..."

"Jeg tror ikke det! Du vet ikke engang halvparten av det."

"Jada, jeg er ikke uenig ...

"Ok, nok snakk. Det er på tide å begynne. Og vi starter med noe enkelt. For eksempel det faktum at Java har en retursetning . Den lar deg øyeblikkelig avslutte en metode som den kalles i. Her er uttalelsen:

return;

"Det er enkelt: det enslige ordet returnetterfulgt av et semikolon. Så snart programmet kjører denne setningen, avsluttes den gjeldende metoden og oppkallingsmetoden fortsetter.

"Hvis returndet kalles inn i mainmetoden, mainvil metoden umiddelbart avsluttes, 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 fyller en del av den beståtte matrisen med value.

Den delen av matrisen som skal fylles er definert av indeksene from og to.

Hvis from er mindre enn 0eller hvis to  er større enn lengden på matrisen, avsluttes metoden umiddelbart.

"Programmet ovenfor har en fillmetode som fyller arrayet som sendes til det med value. Det fyller ikke hele arrayet, bare delen spesifisert av indeksene fromog to.

"I begynnelsen av metoden fillkontrolleres de beståtte verdiene for å sikre at de er gyldige. Hvis fromer mindre enn 0, eller hvis toer større enn lengden på matrisen, fillavsluttes metoden umiddelbart (utfører en returnsetning)."

"Skjønner det. Er det alt denne uttalelsen gjør?"

"Egentlig returner uttalelsen mer nyttig enn du tror. Den er så nyttig at den finnes i nesten alle metoder i Java. Og nå vil jeg lede deg til en forståelse av hvorfor det er slik.

Metoder med resultat,void

"Du husker sikkert at det er utsagn, og det er uttrykk . Hva er forskjellen på dem?"

"Hvis jeg ikke tar feil, har et uttrykk, i motsetning til et utsagn, en betydning som kan brukes et sted."

"Riktig. Og i Java kan metoder også ha en verdi . Og dette er veldig gode nyheter: metoder er ikke bare i stand til å gjøre noe basert på inngangsparametrene, men også for eksempel å evaluere noe og returnere resultatet av regnestykket .

"Forresten, du har allerede møtt slike metoder:

double delta = Math.abs(d1 - d2);
Metoden abs()returnerer en dobbel
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 bare returnere én verdi av én forhåndsbestemt type . Returtypen bestemmes når metoden er deklarert:

public static Type name(parameters)
{
  method body
}

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

For metoder som ikke returnerer noe, er det en spesiell plassholdertype: void.

"Med andre ord, hvis jeg skriver metoden min og ikke vil returnere noe, så erklærer jeg hvilken type metode som er void, og det er det?"

"Ja. Og jeg må også si at Java har ganske mange slike metoder.

Returnerer et resultat

"Jeg fant ut hvordan jeg kan deklarere en metode som returnerer resultatet av en beregning/arbeid. Hvordan returnerer jeg resultatet fra selve metoden?"

"Det er et gyldig spørsmål. returnUtsagnet hjelper oss her igjen. Å sende et resultat fra en metode ser slik ut:

return value;

" returnUttalelsen vil avslutte metoden umiddelbart. Og valuedet er det metoden skal returnere til kallemetoden når den avsluttes. Typen valuemå samsvare med det Typespesifiserte i metodeerklæringen. Her er noen eksempler for å forsterke det du har lært:

Eksempel 1. Metoden beregner minimum av to tall:

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

Hvis a < b
retur a
Ellers
returb

Eksempel 2. Metoden dupliserer strengen som sendes til den nganger:

String multiple(String str, int times)
{
   String result = "";

   for (int i = 0; i < times; i++);
     result = result + " "+ str;
   return result;
}
Metoden tar to parametere - en streng og antall ganger strengen skal gjentas.
En tom streng opprettes for det fremtidige resultatet.

I en løkke med iterasjoner legges timeset mellomrom og strengen til strengen . Strengen returneres som et resultat av metoden.strresult
result

Eksempel 3: Metoden beregner maksimalt to tall ved å bruke den ternære operatoren:

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

returnere (hvis a > b, da a, ellers b)

"Utmerket. Metoder er min nye superkraft!"

"Bare hvis du øver nok på praktiske oppgaver. Over and out."