Metoder i Java

1. Introduktion

I Java er metoder, hvor vi definerer en applikations forretningslogik. De definerer interaktionerne mellem de data, der er indeholdt i et objekt.

I denne vejledning vi gennemgår syntaksen for Java-metoder, definitionen af ​​metodesignaturen, og hvordan man kalder og overbelaster metoder.

2. Metodesyntaks

For det første består en metode af seks dele:

  • Adgangsmodifikator: valgfrit kan vi specificere fra hvor koden man kan få adgang til metoden
  • Returtype: typen af ​​værdi, der returneres efter metoden, hvis nogen
  • Metodeidentifikator: det navn, vi giver metoden
  • Parameterliste: en valgfri kommasepareret liste over input til metoden
  • Undtagelsesliste: en valgfri liste over undtagelser, som metoden kan kaste
  • Legeme: definition af logikken (kan være tom)

Lad os se et eksempel:

Lad os se nærmere på hver af disse seks dele af en Java-metode.

2.1. Adgang modifikator

Adgangsmodifikatoren giver os mulighed for at specificere, hvilke objekter der kan have adgang til metoden. Der er fire mulige adgangsmodifikatorer: offentlig, beskyttet, privat, og standard (også kaldet pakke-privat).

En metode kan også omfatte statisk nøgleord før eller efter adgangsmodifikatoren. Dette betyder, at metoden hører til klassen og ikke til forekomsterne, og derfor kan vi kalde metoden uden at oprette en forekomst af klassen. Metoder uden statisk nøgleord er kendt som instansmetoder og kan kun påberåbes på en forekomst af klassen.

Med hensyn til ydeevne indlæses en statisk metode kun en gang i hukommelsen - under klasseindlæsning - og er således mere hukommelseseffektiv.

2.2. Returtype

Metoder kan returnere data til den kode, hvorfra de er blevet kaldt op. En metode kan returnere en primitiv værdi eller en objektreference, eller den kan ikke returnere noget hvis vi bruger ugyldig nøgleord som returtype.

Lad os se et eksempel på en ugyldig metode:

public void printFullName (String firstName, String lastName) {System.out.println (firstName + "" + lastName); }

Hvis vi erklærer en returtype, skal vi angive en Vend tilbage erklæring i metodekroppen. En gang Vend tilbage Erklæring er udført, udførelsen af ​​metodens organ afsluttes, og hvis der er flere udsagn, behandles disse ikke.

På den anden side er en ugyldig metoden returnerer ingen værdi og har således ikke en Vend tilbage udmelding.

2.3. Metodeidentifikator

Metodeidentifikatoren er det navn, vi tildeler en metodespecifikation. Det er en god praksis at bruge et informativt og beskrivende navn. Det er værd at nævne, at en metodeidentifikator højst kan have 65536 tegn (dog et langt navn).

2.4. Parameterliste

Vi kan angiv inputværdier for en metode i dens parameterliste, som er omgivet af parenteser. En metode kan have alt fra 0 til 255 parametre, der er afgrænset med kommaer. En parameter kan være et objekt, en primitiv eller en optælling. Vi kan bruge Java-annoteringer på metodeparameterniveau (for eksempel Spring-kommentar @RequestParam).

2.5. Undtagelsesliste

Vi kan specificere, hvilke undtagelser der kastes af en metode ved hjælp af kaster klausul. I tilfælde af en kontrolleret undtagelse skal vi enten vedlægge koden i en prøve-fangst klausul eller vi skal give en kaster klausul i metodesignaturen.

Så lad os se på en mere kompleks variant af vores tidligere metode, som kaster en kontrolleret undtagelse:

public void writeName (strengnavn) kaster IOException {PrintWriter ud = ny PrintWriter (ny FileWriter ("OutFile.txt")); out.println ("Navn:" + navn); out.close (); }

2.6. Metode Krop

Den sidste del af en Java-metode er metodekroppen, som indeholder den logik, vi vil udføre. I metodekroppen kan vi skrive så mange kodelinjer, som vi vil - eller slet ingen i tilfælde af statisk metoder. Hvis vores metode erklærer en returtype, skal metoden i kroppen indeholde en returerklæring.

3. Metodesignatur

Ifølge definitionen består en metodesignatur kun af to komponenter - metodens navn og parameterliste.

Så lad os skrive en enkel metode:

public String getName (String firstName, String lastName) {return firstName + "" + middleName + "" + lastname; }

Denne metodes underskrift er getName (streng fornavn, streng efternavn).

Metodeidentifikatoren kan være en hvilken som helst identifikator. Men hvis vi følger almindelige Java-kodningskonventioner, skal metodeidentifikatoren være et verb i små bogstaver, der kan efterfølges af adjektiver og / eller navneord.

4. Opkald til en metode

Lad os nu udforske hvordan man kalder en metode i Java. Lad os efter det foregående eksempel antage, at disse metoder er lukket i en Java-klasse kaldet Personnavn:

offentlig klasse Personnavn {public String getName (String firstName, String lastName) {return firstName + "" + middleName + "" + lastName; }}

Siden vores getName metode er en instansmetode og ikke en statisk metode for at kalde metoden getName, vi er nødt til Opret en forekomst af klassenPersonnavn:

Personnavn personnavn = nyt personnavn (); String fullName = personName.getName ("Alan", "Turing");

Som vi kan se, bruger vi det oprettede objekt til at kalde getName metode.

Lad os endelig se på hvordan man kalder en statisk metode. I tilfælde af en statisk metode har vi ikke brug for en klasseinstans for at foretage opkaldet. I stedet påkalder vi metoden med dens navn forud for klassens navn.

Lad os demonstrere ved hjælp af en variant af det foregående eksempel:

offentlig klasse Personnavn {offentlig statisk streng getName (streng fornavn, streng efternavn) {returner fornavn + "" + mellemnavn + "" + efternavn; }}

I dette tilfælde er metodeopkaldet:

String fullName = PersonName.getName ("Alan", "Turing");

5. Metodeoverbelastning

Java giver os mulighed for at have to eller flere metoder med samme identifikator, men forskellige parameterlister - forskellige metodesignaturer. I dette tilfælde siger vi det metoden er overbelastet. Lad os gå med et eksempel:

public String getName (String firstName, String lastName) {return getName (firstName, "", lastName); } public String getName (String firstName, String middleName, String lastName) {if (! middleName.isEqualsTo ("")) {return firstName + "" + efternavn; } returner fornavn + "" + mellemnavn + "" + efternavn; }

Metodeoverbelastning er nyttig i tilfælde som i eksemplet, hvor vi kan have en metode til implementering af en forenklet version af den samme funktionalitet.

Endelig er en god designvane at sikre, at overbelastede metoder opfører sig på samme måde. Ellers vil koden være forvirrende, hvis en metode med samme identifikator opfører sig på en anden måde.

6. Konklusion

I denne vejledning har vi undersøgt de dele af Java-syntaks, der er involveret, når vi specificerer en metode i Java.

Især gennemgik vi adgangsmodifikatoren, returtypen, metodeidentifikatoren, parameterlisten, undtagelseslisten og metodekroppen. Derefter så vi definitionen af ​​metodesignaturen, hvordan man kalder en metode og hvordan man overbelaster en metode.

Som sædvanlig er koden, der ses her, tilgængelig på GitHub.