1. Modificatori de acces

Înainte de fiecare metodă, programatorii pot specifica așa-numiții modificatori de acces. Acestea includ următoarele cuvinte cheie: public, protected, private.

Acești modificatori de acces vă permit să restricționați accesul altor clase la o metodă.

De exemplu, dacă scrieți privatecuvântul cheie înainte de declarația unei metode, atunci metoda poate fi apelată doar din aceeași clasă în care este declarată. Cuvântul publiccheie permite accesul la metoda marcată din orice metodă din orice clasă.

Există în total 3 astfel de modificatori, dar există 4 tipuri de acces la o metodă. Acest lucru se datorează faptului că absența unui modificator de acces înseamnă și ceva.

Acces din...
Modificatori Orice clasa Clasa de copii Pachetul său Clasa sa
public da da da da
protected Nu da da da
nici un modificator Nu Nu da da
private Nu Nu Nu da

1. publicmodificator

O metodă (sau variabilă sau clasă) marcată cu publicmodificatorul poate fi accesată de oriunde în program . Acesta este cel mai înalt grad de deschidere - nu există restricții.

2. privatemodificator

O metodă (sau variabilă, sau clasă) marcată cu privatemodificatorul poate fi accesată numai din aceeași clasă în care este declarată . Pentru toate celelalte clase, metoda marcată (sau variabila) este invizibilă. Parcă nu există. Acesta este cel mai înalt nivel de restricție - doar propria sa clasă.

3. Fără modificator (modificator implicit)

Dacă o metodă (sau variabilă) nu este marcată cu niciun modificator, atunci se consideră că are „modificatorul implicit”. Variabilele sau metodele cu acel modificator (adică fără niciunul) sunt vizibile pentru toate clasele din pachetul în care sunt declarate . Și numai pentru ei. Acest modificator este uneori numit și package-private, sugerând că accesul la variabile și metode este deschis întregului pachet în care se află clasa lor.

4. protectedmodificator

Dacă o metodă este marcată cu protectedmodificatorul, atunci poate fi accesată din aceeași clasă, același pachet și descendenți (clase care moștenesc clasa în care este declarată metoda). Vom analiza acest subiect mai detaliat în căutarea Java Core.

Puteți folosi publicmodificatorul pentru toate metodele dvs. (precum și pentru toate clasele și variabilele de clasă) până când ajungeți la sfârșitul misiunii de sintaxă Java. Veți avea nevoie de ceilalți modificatori când începem să învățăm activ OOP.

De ce sunt necesari modificatorii de acces?

Ele devin necesare pentru proiecte mari scrise de zeci și sute de programatori în același timp.

Uneori există situații în care un programator dorește să împartă o metodă excesiv de mare în părți și să mute o parte din cod în metode de ajutor. Dar, în același timp, el sau ea nu dorește ca alți programatori să apeleze aceste metode de ajutor, deoarece codul corespunzător poate să nu funcționeze corect.

Așa că au venit cu acești modificatori de acces. Dacă marcați o metodă de ajutor cu cuvântul privat , atunci niciun alt cod decât clasa dvs. nu poate vedea metoda dvs. de ajutor.



2. staticcuvânt cheie

Cuvântul staticcheie face o metodă statică. Ne vom uita la ce înseamnă asta mai târziu. Pentru moment, amintiți-vă doar câteva fapte despre metodele statice.

Fapt 1. O metodă statică nu este atașată niciunui obiect , ci aparține clasei în care este declarată. Pentru a apela o metodă statică, trebuie să scrieți:

ClassName.MethodName()

Exemple de metode statice:

Numele clasei Numele metodei statice
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Numele clasei înaintea numelui unei metode statice poate fi omis dacă apelați metoda statică din clasa sa. Acesta este motivul pentru care nu trebuie să scrieți Solutionînainte numele fiecăreia dintre metodele statice care sunt apelate.

Faptul 2. O metodă statică nu poate accesa metodele non-statice ale propriei sale clase. O metodă statică poate accesa numai metode statice. Ca urmare, declarăm toate metodele pe care dorim să le apelăm din mainmetoda static.

De ce? Veți putea răspunde singuri la această întrebare când veți începe să învățați OOP și să înțelegeți cum funcționează metodele statice.



3. throwscuvânt cheie

Există un alt cuvânt cheie pe care probabil l-ați văzut într-o declarație de metodă - cuvântul throwscheie. Spre deosebire de modificatorii de acces și staticcuvântul cheie, acest cuvânt cheie este plasat după parametrii metodei:

public static Type name(parameters) throws Exception
{
  method body
}

Vom lua în considerare sensul său precis puțin mai târziu când studiem excepțiile.

Dar pentru a o atinge superficial, putem spune că o metodă marcată cu cuvântul cheie throws poate arunca erori (excepții), adică instanțe ale clasei Exception (și clasele care o moștenesc). Dacă într-o clasă pot apărea mai multe tipuri diferite de erori, atunci trebuie să enumerați fiecare dintre ele separate prin virgule.


4. mainmetoda

Linia în care este declarată o metodă, care conține toți modificatorii, va afecta modul în care această metodă este numită din alte clase și metode. Afectează tipul de rezultat pe care metoda îl va returna și indică ce erori sunt posibile pe măsură ce rulează.

O astfel de linie se numește declarație de metodă și are următorul format general:

access modifier static Type name(parameters) throws exceptions
Formatul general al unei declarații de metodă

Unde access modifiers este înlocuit cu public, protected, private, sau nimic;

dacă metoda este statică, atunci staticapare cuvântul cheie (este absent pentru metodele non-statice)

Typeeste tipul valorii returnate ( voiddacă nu există niciun rezultat)

Acum probabil că înțelegeți ce înseamnă toate cuvintele cheie în declarația metodei main:

public static void main(String[] args) throws Exception
Declararea mainmetodei

Accesul la main()metodă este posibil din orice clasă, așa cum este indicat de publiccuvântul cheie.

Metoda este statică, deci poate fi numită explicit ca Solution.main().

Metoda mainnu returnează niciun rezultat. Tipul de returnare este void(fără tip).

Metoda mainpreia argumente(!): o matrice de șiruri. Iar numele parametrului argssugerează „argumente” minții noastre. Când programul pornește, îi puteți transmite argumente - o matrice de șiruri. Ele vor fi conținute în args tabloul din main()metodă.

ExceptionÎn metodă pot apărea erori negestionate precum (sau descendenții săi) main().