1. Hozzáférés módosítók

A programozók minden metódus előtt úgynevezett hozzáférés-módosítókat adhatnak meg. Ide tartoznak a következő kulcsszavak: public, protected, private.

Ezek a hozzáférés-módosítók lehetővé teszik más osztályok metódusokhoz való hozzáférésének korlátozását.

Például, ha a kulcsszót a metódus deklarációja elé írja private, akkor a metódus csak abból az osztályból hívható meg, amelyben deklarálva van. A publickulcsszó lehetővé teszi a megjelölt metódus elérését bármely osztály bármely metódusából.

Összesen 3 ilyen módosító létezik, de egy metódushoz 4 hozzáférési típus létezik. Ugyanis a hozzáférés módosító hiánya is jelent valamit.

Hozzáférés innen:...
Módosítók Bármilyen osztály Gyermek osztály A csomagja Az osztálya
public Igen Igen Igen Igen
protected Nem Igen Igen Igen
nincs módosító Nem Nem Igen Igen
private Nem Nem Nem Igen

1. publicmódosító

A módosítóval jelölt metódus (vagy változó vagy osztály) a program bármely pontjárólpublic elérhető . Ez a nyitottság legmagasabb foka – nincsenek korlátozások.

2. privatemódosító

A módosítóval megjelölt metódus (vagy változó vagy osztály) privatecsak abból az osztályból érhető el , ahol deklarálva van . Az összes többi osztálynál a megjelölt metódus (vagy változó) láthatatlan. Mintha nem is létezne. Ez a korlátozás legmagasabb szintje – csak a saját osztálya.

3. Nincs módosító (alapértelmezett módosító)

Ha egy metódus (vagy változó) nincs megjelölve semmilyen módosítóval, akkor az „alapértelmezett módosítóval” rendelkezik. Az ezzel a módosítóval rendelkező változók vagy metódusok (azaz egyikkel sem) láthatók a csomag minden osztálya számára, amelyben deklarálva vannak . És csak nekik. Ezt a módosítót néha -nak is nevezik package-private, utalva arra, hogy a változókhoz és metódusokhoz való hozzáférés nyitva áll a teljes csomag számára, amelyben az osztályuk található.

4. protectedmódosító

Ha egy metódus meg van jelölve a módosítóval protected, akkor ugyanabból az osztályból, ugyanabból a csomagból és leszármazottakból (olyan osztályokból, amelyek öröklik azt az osztályt, amelyben a metódus deklarálva van) érhető el. Ezt a témát részletesebben elemezzük a Java Core küldetésben.

Használhatja a publicmódosítót az összes metódusán (valamint az összes osztályán és osztályváltozóján), amíg el nem éri a Java Syntax küldetés végét. Szüksége lesz a többi módosítóra, amikor elkezdjük aktívan tanulni az OOP-t.

Miért van szükség hozzáférésmódosítókra?

Egyszerre több tíz és több száz programozó által írt nagy projektekhez válnak szükségessé.

Néha vannak olyan helyzetek, amikor a programozó egy túl nagy metódust részekre akar felosztani, és a kód egy részét segédmetódusokba akarja áthelyezni. Ugyanakkor nem akarja, hogy más programozók meghívják ezeket a segítő módszereket, mert előfordulhat, hogy a megfelelő kód nem működik megfelelően.

Tehát kitalálták ezeket a hozzáférés-módosítókat. Ha egy helper metódust a private szóval jelöl meg , akkor az osztályán kívül egyetlen kód sem láthatja a helper metódust.



2. statickulcsszó

A statickulcsszó statikussá teszi a metódust. Később megnézzük, hogy ez mit jelent. Egyelőre csak emlékezzen néhány tényre a statikus módszerekről.

1. tény. A statikus metódus nem kapcsolódik egyetlen objektumhoz sem , hanem abba az osztályba tartozik, amelyben deklarálva van. Statikus metódus hívásához a következőket kell írnia:

ClassName.MethodName()

Példák statikus módszerekre:

Osztály név Statikus metódusnév
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

A statikus metódus neve előtti osztálynév elhagyható, ha a statikus metódust az osztályából hívja meg. Ezért nem kell az egyes meghívott statikus metódusok neve elé írni.Solution

2. tény. Egy statikus metódus nem férhet hozzá saját osztályának nem statikus metódusaihoz . A statikus metódusok csak statikus metódusokhoz férhetnek hozzá. Ennek eredményeként statikussá nyilvánítjuk az összes metódust, amelyet a metódusból meg akarunk hívni main.

Miért? Ön képes lesz erre a kérdésre válaszolni, amikor elkezdi tanulni az OOP-t, és megérti a statikus módszerek működését.



3. throwskulcsszó

Van egy másik kulcsszó, amelyet valószínűleg már látott a metódus deklarációjában – ez a throwskulcsszó. A hozzáférés-módosítókkal és a statickulcsszóval ellentétben ez a kulcsszó a metódus paraméterei után kerül:

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

Pontos jelentését egy kicsit később fogjuk megvizsgálni, amikor a kivételeket tanulmányozzuk.

Exception De ha felületesen érintjük, azt mondhatjuk, hogy a throws kulcsszóval jelölt metódus hibákat (kivételeket), vagyis az osztály (és az azt öröklő osztályok) példányait dobhatja . Ha egy osztályban többféle hiba is előfordulhat, akkor mindegyiket vesszővel elválasztva kell felsorolni.


4. mainmódszer

A metódus deklarált sora, amely az összes módosítót tartalmazza, befolyásolja, hogy a metódus hogyan hívódik meg más osztályokból és metódusokból. Ez befolyásolja a metódus által visszaadott eredmény típusát, és jelzi, hogy milyen hibák fordulhatnak elő futás közben.

Az ilyen sort metódusdeklarációnak nevezzük, és a következő általános formátuma van:

access modifier static Type name(parameters) throws exceptions
Metódus deklaráció általános formátuma

Ahol access modifiers a helyére public, protected, private, vagy semmi;

ha a metódus statikus, akkor staticmegjelenik a kulcsszó (nem statikus módszereknél hiányzik)

Typea visszatérési érték típusa ( voidha nincs eredmény)

Most már valószínűleg megérti, mit jelent az összes kulcsszó a metódus deklarációjában main:

public static void main(String[] args) throws Exception
mainA módszer deklarálása

A metódushoz main()bármely osztályból hozzá lehet férni, ahogy azt a publickulcsszó jelzi.

A metódus statikus, ezért kifejezetten nevezhetjük Solution.main().

A mainmódszer nem ad vissza semmilyen eredményt. A visszatérési típus void(nincs típus).

A mainmetódus argumentumokat(!): karakterláncok tömbjét vesz fel. A paraméter neve pedig args„érveket” sugall az elménk számára. Amikor a program elindul, átadhat neki argumentumokat – karakterláncok tömbjét. args A metódus tömbjében lesznek benne main().

ExceptionA metódusban előfordulhatnak olyan kezeletlen hibák, mint például (vagy annak leszármazottai) main().