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 public
kulcsszó 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. public
mó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. private
módosító
A módosítóval megjelölt metódus (vagy változó vagy osztály) private
csak 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. protected
mó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 public
mó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. static
kulcsszó
A static
kulcsszó 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. throws
kulcsszó
Van egy másik kulcsszó, amelyet valószínűleg már látott a metódus deklarációjában – ez a throws
kulcsszó. A hozzáférés-módosítókkal és a static
kulcsszó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. main
mó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 static
megjelenik a kulcsszó (nem statikus módszereknél hiányzik)
Type
a visszatérési érték típusa ( void
ha 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
A metódushoz main()
bármely osztályból hozzá lehet férni, ahogy azt a public
kulcsszó jelzi.
A metódus statikus, ezért kifejezetten nevezhetjük Solution.main()
.
A main
módszer nem ad vissza semmilyen eredményt. A visszatérési típus void
(nincs típus).
A main
metó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()
.
Exception
A metódusban előfordulhatnak olyan kezeletlen hibák, mint például (vagy annak leszármazottai) main()
.
GO TO FULL VERSION