"Ü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