1. Tilgangsmodifikatorer
Før hver metode kan programmerere spesifisere såkalte tilgangsmodifikatorer. Disse inkluderer følgende nøkkelord: public
, protected
, private
.
Disse tilgangsmodifikatorene lar deg begrense andre klassers tilgang til en metode.
Hvis du for eksempel skriver private
nøkkelordet før en metodeerklæring, kan metoden bare kalles fra samme klasse som den er deklarert. Nøkkelordet public
gir tilgang til den merkede metoden fra hvilken som helst metode i en hvilken som helst klasse.
Det er totalt 3 slike modifikatorer, men det er 4 typer tilgang til en metode. Dette er fordi fraværet av en tilgangsmodifikator også betyr noe.
Tilgang fra... | ||||
---|---|---|---|---|
Modifikatorer | Hvilken som helst klasse | Barneklasse | Dens pakke | Dens klasse |
public |
Ja | Ja | Ja | Ja |
protected |
Nei | Ja | Ja | Ja |
ingen modifikator | Nei | Nei | Ja | Ja |
private |
Nei | Nei | Nei | Ja |
1. public
modifikator
En metode (eller variabel eller klasse) merket med public
modifikator kan nås fra hvor som helst i programmet . Dette er den høyeste graden av åpenhet - det er ingen begrensninger.
2. private
modifikator
En metode (eller variabel eller klasse) merket med private
modifikatoren kan bare nås fra den samme klassen der den er deklarert . For alle andre klasser er den merkede metoden (eller variabelen) usynlig. Det er som om det ikke eksisterer. Dette er det høyeste nivået av begrensning - bare sin egen klasse.
3. Ingen modifikator (standardmodifikator)
Hvis en metode (eller variabel) ikke er merket med noen modifikator, anses den å ha 'standardmodifikatoren'. Variabler eller metoder med den modifikatoren (dvs. med ingen i det hele tatt) er synlige for alle klasser i pakken der de er deklarert . Og bare til dem. Denne modifikatoren kalles også noen ganger package-private
, og antyder at tilgang til variabler og metoder er åpen for hele pakken der klassen deres er plassert.
4. protected
modifikator
Hvis en metode er merket med protected
modifikatoren, kan den nås fra samme klasse, samme pakke og etterkommere (klasser som arver klassen som metoden er deklarert i). Vi vil analysere dette emnet mer detaljert i Java Core-oppdraget.
Du kan bruke public
modifikatoren på alle metodene dine (så vel som alle klassene og klassevariablene dine) til du når slutten av Java Syntax-oppdraget. Du trenger de andre modifikatorene når vi begynner aktivt å lære OOP.
Hvorfor trengs tilgangsmodifikatorer?
De blir nødvendige for store prosjekter skrevet av titalls og hundrevis av programmerere på samme tid.
Noen ganger er det situasjoner når en programmerer ønsker å dele opp en altfor stor metode i deler og flytte deler av koden inn i hjelpemetoder. Men samtidig vil han eller hun ikke at andre programmerere skal kalle disse hjelpemetodene, fordi den tilsvarende koden kanskje ikke fungerer som den skal.
Så de kom opp med disse tilgangsmodifikatorene. Hvis du merker en hjelpemetode med ordet privat , kan ingen annen kode enn klassen din se hjelpemetoden din.
2. static
nøkkelord
Nøkkelordet static
gjør en metode statisk. Vi skal se på hva det betyr senere. For nå, bare husk et par fakta om statiske metoder.
Fakta 1. En statisk metode er ikke knyttet til noe objekt , men tilhører i stedet klassen den er deklarert i. For å kalle en statisk metode, må du skrive:
ClassName.MethodName()
Eksempler på statiske metoder:
Klassenavn | Statisk metodenavn | |
---|---|---|
Thread.sleep() |
Thread |
sleep() |
Math.abs() |
Math |
abs() |
Arrays.sort() |
Arrays |
sort() |
Klassenavnet før navnet på en statisk metode kan utelates hvis du kaller den statiske metoden fra klassen . Dette er grunnen til at du ikke trenger å skrive før navnene på hver av de statiske metodene som kalles.Solution
Fakta 2. En statisk metode kan ikke få tilgang til de ikke-statiske metodene i sin egen klasse. En statisk metode kan bare få tilgang til statiske metoder. Som et resultat erklærer vi alle metodene som vi ønsker å kalle fra metoden main
statiske.
Hvorfor? Du vil selv kunne svare på dette spørsmålet når du begynner å lære OOP og forstå hvordan statiske metoder fungerer.
3. throws
nøkkelord
Det er et annet nøkkelord som du sannsynligvis har sett i en metodeerklæring - nøkkelordet throws
. I motsetning til tilgangsmodifikatorer og nøkkelordet static
, plasseres dette nøkkelordet etter metodeparameterne:
public static Type name(parameters) throws Exception
{
method body
}
Vi vil vurdere dens nøyaktige betydning litt senere når vi studerer unntak.
Men for å berøre det overfladisk, kan vi si at en metode merket med nøkkelordet throws kan gi feil (unntak), altså forekomster av klassen Exception
(og klasser som arver den). Hvis flere forskjellige typer feil kan oppstå i en klasse, må du liste hver av dem atskilt med komma.
4. main
metode
Linjen der en metode er deklarert, som inneholder alle modifikatorene, vil påvirke hvordan denne metoden kalles fra andre klasser og metoder. Det påvirker typen resultat metoden vil returnere og indikerer hvilke feil som er mulige mens den kjører.
En slik linje kalles en metodeerklæring og har følgende generelle format:
access modifier static Type name(parameters) throws exceptions
Hvor access modifiers
er erstattet av public
, protected
, private
, eller ingenting i det hele tatt;
hvis metoden er statisk, static
vises nøkkelordet (det er fraværende for ikke-statiske metoder)
Type
er typen returverdi ( void
hvis det ikke er noe resultat)
Nå forstår du sannsynligvis hva alle nøkkelordene betyr i erklæringen om metoden main
:
public static void main(String[] args) throws Exception
Tilgang til main()
metoden er mulig fra hvilken som helst klasse, som indikert av nøkkelordet public
.
Metoden er statisk, så den kan kalles eksplisitt som Solution.main()
.
Metoden main
gir ikke noe resultat. Returtypen er void
(ingen type).
Metoden main
tar argumenter(!): en rekke strenger. Og parameternavnet args
antyder "argumenter" for våre sinn. Når programmet starter, kan du sende det argumenter - en rekke strenger. De vil være inneholdt i args
matrisen i main()
metoden.
Ubehandlede feil som Exception
(eller dens etterkommere) kan oppstå i main()
metoden.
GO TO FULL VERSION