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 privatenøkkelordet før en metodeerklæring, kan metoden bare kalles fra samme klasse som den er deklarert. Nøkkelordet publicgir 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. publicmodifikator

En metode (eller variabel eller klasse) merket med publicmodifikator kan nås fra hvor som helst i programmet . Dette er den høyeste graden av åpenhet - det er ingen begrensninger.

2. privatemodifikator

En metode (eller variabel eller klasse) merket med privatemodifikatoren 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. protectedmodifikator

Hvis en metode er merket med protectedmodifikatoren, 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 publicmodifikatoren 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. staticnøkkelord

Nøkkelordet staticgjø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 mainstatiske.

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. throwsnø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. mainmetode

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
Generelt format for en metodeerklæring

Hvor access modifiers er erstattet av public, protected, private, eller ingenting i det hele tatt;

hvis metoden er statisk, staticvises nøkkelordet (det er fraværende for ikke-statiske metoder)

Typeer typen returverdi ( voidhvis 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
Deklarerer mainmetoden

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 maingir ikke noe resultat. Returtypen er void(ingen type).

Metoden maintar argumenter(!): en rekke strenger. Og parameternavnet argsantyder "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.