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
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().
GO TO FULL VERSION