"Üdvözlöm a kedvenc tanítványomat. Most a változók láthatóságáról fogok mesélni."
"Huh? Lehetnek a változók láthatatlanok?"
"Nem. A változó láthatósága vagy hatóköre azokat a helyeket jelenti a kódban, ahol hivatkozhat az adott változóra. A programban mindenütt használhat néhány változót, de mások csak az osztályukon belül használhatók, mások pedig – csak egy módszeren belül. "
"Például nem használhat változót a deklaráció előtt."
"Ennek van értelme."
"Íme néhány példa:"
┏
┃public class Variables
┃┏
┃┃{
┃┃ private static String TEXT = "The end.";
┃┃ ┗━━━━━━━━━━━━━━┛
┃┃ public static void main (String[] args)
┃┃ ┏ ┗━━━━━━━┛
┃┃ ┃ {
┃┃ ┃ System.out.println("Hi");
┃┃ ┃ String s = "Hi!";
┃┃ ┃ ┏┗━━━━┛
┃┃ ┃ ┃ System.out.println(s);
┃┃ ┃ ┃ if (args != NULL)
┃┃ ┃ ┃ {
┃┃ ┃ ┃ String s2 = s;
┃┃ ┃ ┃ ┗━━━━┛
┃┃ ┃ ┃ ┏
┃┃ ┃ ┃ ┃ System.out.println(s2);
┃┃ ┃ ┃ ┗
┃┃ ┃ ┃ }
┃┃ ┃ ┃ Variables variables = new Variables();
┃┃ ┃ ┃ System.out.println(variables.instanceVariable);
┃┃ ┃ ┃ System.out.println(TEXT);
┃┃ ┃ ┗
┃┃ ┃ }
┃┃ ┗
┃┃ public String instanceVariable;
┃┃ ┗━━━━━━━━━━━━━━━┛
┃┃ public Variables()
┃┃ {
┃┃ instanceVariable = "Instance variable test.";
┃┃ }
┃┃}
┃┗
┗
1. Egy metódusban deklarált változó létezik (látható) a deklaráció kezdetétől a metódus végéig.
2. A kódblokkban deklarált változó a kódblokk végéig létezik.
3. A metódus paraméterei a metóduson belül mindenhol léteznek.
4. Az objektumban lévő változók az őket tartalmazó objektum teljes élettartama alatt léteznek. Láthatóságukat speciális hozzáférésmódosítók is meghatározzák: public és private .
5. A statikus (osztály) változók a program teljes futása alatt léteznek. Láthatóságukat hozzáférésmódosítók is meghatározzák.
"Szeretem a képeket. Segítenek mindent világossá tenni."
"Jó fiú, Amigo. Mindig is tudtam, hogy okos srác vagy."
" A hozzáférés-módosítókról is beszélek . Ne ijedjen meg. Nincs bennük semmi bonyolult. Itt láthatja a nyilvános és privát szavakat ."
"Nem félek, csak a szemem rándul."
"Hiszek neked. Kezelheti, hogy egy osztály metódusait és változóit hogyan érjék el (vagy hogyan lássák) más osztályok. Csak egy hozzáférés-módosítót rendelhet hozzá minden metódushoz vagy változóhoz.
1. nyilvános hozzáférés módosító.
A nyilvános módosítóval jelölt változót, metódust vagy osztályt bárhonnan használhatjuk a programban. Ez a legmagasabb szintű hozzáférés – itt nincsenek korlátozások.
2. privát hozzáférés módosító.
A privát módosítóval megjelölt változót vagy metódust csak abból az osztályból használhatod, amelyben deklarálták. Minden más osztálynál a megjelölt metódus vagy változó láthatatlan lesz, mintha nem is létezne. Ez a legmagasabb szintű zártság – csak a saját osztályán belül érhető el.
3. Nincs módosító.
Ha egy változó vagy metódus nincs megjelölve semmilyen módosítóval, akkor az 'alapértelmezett' hozzáférésmódosítóval van megjelölve. Az ilyen változók és metódusok a csomagban lévő összes osztály számára láthatók. És csak nekik. Ezt a hozzáférési szintet néha " csomag-privát " hozzáférésnek is nevezik , mivel a változókhoz és metódusokhoz való hozzáférés nyitva áll az osztályukat tartalmazó teljes csomag számára.
Íme egy táblázat, amely összefoglalja a megbeszélteket:"
Módosítók | Hozzáférés a… | ||
---|---|---|---|
Saját osztály | Saját csomag | Bármilyen osztály | |
magán | Igen | Nem | Nem |
Nincs módosító ( csomag-privát ) | Igen | Igen | Nem |
nyilvános | Igen | Igen | Igen |
GO TO FULL VERSION