access modifiers java tutorial with examples
Tento videonávod vysvetľuje, čo sú modifikátory prístupu v Jave, a ako používať predvolené, verejné, chránené a súkromné modifikátory prístupu, pomocou príkladov:
V Jave máme triedy a objekty. Tieto triedy a objekty sú obsiahnuté v balíku. Okrem toho môžu mať triedy vnorené triedy, metódy, premenné atď. Pretože Java je objektovo orientovaný programovací jazyk, musíme postupovať podľa zapuzdrenia, v ktorom skryjeme nežiaduce podrobnosti.
Java poskytuje entity nazývané „Modifikátory prístupu alebo špecifikátory prístupu“, ktoré nám pomáhajú obmedziť rozsah alebo viditeľnosť balíka, triedy, konštruktora, metód, premenných alebo iných dátových členov. Tieto modifikátory prístupu sa tiež nazývajú „Špecifikátory viditeľnosti“.
Použitím špecifikátorov prístupu je možné obmedziť konkrétnu metódu triedy alebo premennú na prístup alebo skryť pred ostatnými triedami.
=> Skontrolujte VŠETKY návody Java tu.
ako otvoriť súbor bin v systéme Windows 10
Čo sa dozviete:
- Videonávod o modifikátoroch prístupu v prostredí Java
- Modifikátory prístupu v Jave
- Typy modifikátorov prístupu v Jave
- Záver
Videonávod o modifikátoroch prístupu v prostredí Java
Modifikátory prístupu v Jave
Špecifikátory prístupu tiež určujú, ku ktorým dátovým členom (metódam alebo poliam) triedy majú prístup ostatní dátoví členovia tried alebo balíkov atď. Na zabezpečenie zapuzdrenia a opätovného použitia sú tieto špecifikátory / modifikátory prístupu neoddeliteľnou súčasťou objektovo orientovaného programovania.
Modifikátory v Jave sú dva typy:
# 1) Modifikátory prístupu
Modifikátory prístupu v Jave nám umožňujú nastaviť rozsah alebo prístupnosť alebo viditeľnosť dátového člena, či už je to pole, konštruktor, trieda alebo metóda.
# 2) Modifikátory neprístupu
Java tiež poskytuje špecifikátory neprístupu, ktoré sa používajú s triedami, premennými, metódami, konštruktormi atď. Špecifikátory / modifikátory neprístupu definujú správanie entít k JVM.
Niektoré zo špecifikátorov / modifikátorov neprístupu v prostredí Java sú:
- statický
- finálny, konečný
- abstraktné
- prechodný
- prchavý
- synchronizované
- domorodec
V našich predchádzajúcich tutoriáloch sme sa zaoberali statickými, synchronizovanými a nestálymi kľúčovými slovami. Ďalším modifikátorom neprístupu sa budeme venovať v našich budúcich tutoriáloch, pretože sú nad rámec tohto tutoriálu.
Typy modifikátorov prístupu v Jave
Java poskytuje štyri typy špecifikátorov prístupu, ktoré môžeme použiť s triedami a inými entitami.
Sú to:
# 1) Predvolené: Kedykoľvek nie je zadaná konkrétna úroveň prístupu, predpokladá sa, že je „predvolená“. Rozsah predvolenej úrovne je v balíku.
# 2) Verejné: Toto je najbežnejšia úroveň prístupu a kedykoľvek sa použije špecifikátor verejného prístupu s entitou, táto konkrétna entita je prístupná z celej triedy alebo mimo nej, v rámci balíka alebo mimo neho atď.
# 3) Chránené: Úroveň chráneného prístupu má rozsah, ktorý je v rámci balíka. Chránená entita je prístupná aj mimo balíka prostredníctvom zdedenej triedy alebo podradenej triedy.
# 4) Súkromné: Ak je entita súkromná, potom k nej nie je možné získať prístup mimo triedy. Súkromný subjekt je prístupný iba z triedy.
Modifikátory prístupu môžeme zhrnúť v nasledujúcej tabuľke.
Špecifikátor prístupu | Vnútri triedy | Vnútorný obal | Podtrieda vonkajšieho balenia | Vonkajšie balenie |
---|---|---|---|---|
Súkromné | Áno | Nie | Nie | Nie |
Predvolené | Áno | Áno | Nie | Nie |
Chránené | Áno | Áno | Áno | Nie |
Verejné | Áno | Áno | Áno | Áno |
Ďalej podrobne rozoberieme každý z týchto špecifikátorov prístupu.
Predvolené špecifikátory prístupu
Predvolený modifikátor prístupu v Jave nemá žiadne konkrétne kľúčové slovo. Kedykoľvek nie je zadaný modifikátor prístupu, považuje sa za predvolený. Entity ako triedy, metódy a premenné môžu mať predvolený prístup.
Predvolená trieda je prístupná vo vnútri balíka, ale nie je prístupná zvonku balíka, t. J. K tejto triede majú prístup všetky triedy v balíku, v ktorých je definovaná predvolená trieda.
Podobne je predvolená metóda alebo premenná prístupná aj vo vnútri balíka, v ktorom sú definované, a nie mimo balíka.
Nasledujúci program demonštruje predvolený modifikátor prístupu v prostredí Java.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Výkon:
Vo vyššie uvedenom programe máme v sebe triedu a metódu bez akéhokoľvek modifikátora prístupu. Z tohto dôvodu má zobrazenie triedy aj metódy predvolený prístup. Potom vidíme, že v metóde môžeme priamo vytvoriť objekt triedy a metódu zavolať.
Modifikátor verejného prístupu
Trieda alebo metóda alebo údajové pole určené ako „verejné“ je prístupné z ktorejkoľvek triedy alebo balíka v programe Java. Verejný subjekt je prístupný v rámci balíka aj mimo balíka. Všeobecne je modifikátor verejného prístupu modifikátor, ktorý entitu vôbec neobmedzuje.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Výkon:
Špecifikátor chráneného prístupu
Špecifikátor chráneného prístupu umožňuje prístup k entitám prostredníctvom podtried triedy, v ktorej je entita deklarovaná. Nezáleží na tom, či je trieda v rovnakom balíku alebo inom balíku, ale pokiaľ je trieda, ktorá sa pokúša získať prístup k chránenej entite, podtriedou tejto triedy, je entita prístupná.
Upozorňujeme, že triedu a rozhranie nie je možné chrániť, t. J. Na triedy a rozhrania nemôžeme použiť chránené modifikátory.
Modifikátor chráneného prístupu sa zvyčajne používa vo vzťahoch rodič - dieťa.
Nasledujúci program demonštruje použitie modifikátora chráneného prístupu v Jave.
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Výkon:
Modifikátor súkromného prístupu
„Súkromný“ modifikátor prístupu je ten, ktorý má najnižšiu úroveň prístupnosti. Metódy a polia, ktoré sú deklarované ako súkromné, nie sú mimo triedy prístupné. Sú prístupné iba v rámci triedy, ktorá má tieto súkromné subjekty ako členov.
ako pridať veci do poľa
Upozorňujeme, že súkromné subjekty nie sú viditeľné ani pre podtriedy triedy. Modifikátor súkromného prístupu zaisťuje zapuzdrenie v Jave.
Niektoré poznámky týkajúce sa modifikátora súkromného prístupu.
- Modifikátor súkromného prístupu nemožno použiť pre triedy a rozhrania.
- Rozsah súkromných subjektov (metódy a premenné) je obmedzený na triedu, v ktorej sú deklarované.
- Trieda so súkromným konštruktorom nemôže vytvoriť objekt triedy z iného miesta, ako je napríklad hlavná metóda. (Viac podrobností o súkromných konštruktoroch sme vysvetlili v našom staršom návode).
Nižšie uvedený program Java používa modifikátor súkromného prístupu.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Výkon:
Vyššie uvedený program poskytuje chybu kompilácie, keď sa pokúšame získať prístup k členom súkromných údajov pomocou objektu triedy.
Existuje ale metóda na prístup k súkromným premenným členov. Táto metóda využíva getry a setre v Jave. Takže poskytujeme verejnú metódu get v tej istej triede, v ktorej je deklarovaná súkromná premenná, aby getter mohol čítať hodnotu súkromnej premennej.
Podobne poskytujeme metódu verejného nastavovača, ktorá nám umožňuje nastaviť hodnotu pre súkromnú premennú.
Nasledujúci program Java demonštruje použitie metód getra a setra pre súkromné premenné v Jave.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Výkon:
Vyššie uvedený program má triedu s premennou súkromného reťazca. Poskytujeme verejnú metódu getName member, ktorá vracia hodnotu súkromnej premennej. V triede, ktorá berie reťazec ako argument a priraďuje ho k súkromnej premennej, poskytujeme tiež verejnú metódu setName.
Keďže obe metódy sú verejné, môžeme k nim ľahko získať prístup pomocou objektu triedy. Týmto spôsobom môžeme prekonať chybu kompilácie, ktorá sa objaví zakaždým, keď sa pokúsime získať prístup k súkromným dátovým členom triedy.
často kladené otázky
Otázka 1) Koľko modifikátorov prístupu je v Jave?
Odpoveď: Java poskytuje štyri modifikátory, t. J. Predvolené, verejné, chránené a súkromné.
Otázka 2) Čo sú modifikátory prístupu a neprístupné modifikátory v Jave?
Odpoveď: Modifikátory prístupu definujú viditeľnosť alebo rozsah programovej entity ako trieda alebo metóda alebo premenná alebo konštruktor. Modifikátory neprístupu definujú správanie entity. Napríklad, synchronizovaná metóda alebo blok naznačuje, že môže pracovať v prostredí viacerých vlákien, konečná premenná naznačuje, že ide o konštantu.
Otázka č. 3) Prečo sú špecifikátory prístupu dôležité?
Odpoveď: Modifikátory určujú, ktorá trieda má prístup ku ktorým ďalším triedam, metódam alebo premenným. Pomocou špecifikátorov prístupu môžeme obmedziť prístup k rôznym triedam, metódam, konštruktorom a premenným a tiež zabezpečiť zapuzdrenie a opätovné použitie entít Java.
Otázka č. 4) Ktoré modifikátory sa v triede nepoužívajú?
Odpoveď: Chránené a súkromné modifikátory sa pre triedu nepoužívajú.
Otázka č. 5) Čo sú modifikátory neprístupu?
Odpoveď: Modifikátory, ktoré definujú správanie entít, ako sú trieda, metóda alebo premenné, s ktorými sú spojené, sú modifikátory neprístupu. Ako už názov napovedá, prístup nešpecifikujú. Java poskytuje rôzne neprístupné modifikátory, ako sú statické, konečné, synchronizované, nestále, abstraktné atď.
Viac o modifikátoroch viditeľnosti
Java poskytuje veľa modifikátorov na prístup k premennej, metódam a konštruktorom.
V Jave existujú 4 typy prístupových premenných:
- Súkromné
- Verejné
- Predvolené
- Chránené
# 1) Súkromné
Ak je premenná deklarovaná ako súkromná, potom k nej možno získať prístup v rámci triedy. Táto premenná nebude k dispozícii mimo triedy. Vonkajší členovia teda nemajú prístup k súkromným členom.
Poznámka: Triedy a rozhrania nemôžu byť súkromné.
html otázky a odpovede na pohovor pdf
# 2) Verejné
K metódam / premenným s verejnými modifikátormi majú prístup všetky ostatné triedy v projekte.
# 3) Chránené
Ak je premenná deklarovaná ako chránená, potom k nej možno pristupovať v rámci rovnakých tried balíkov a podtriedy akýchkoľvek iných balíkov.
Poznámka: Modifikátor chráneného prístupu nemožno použiť pre triedu a rozhrania.
# 4) Predvolený modifikátor prístupu
Ak je premenná / metóda definovaná bez kľúčového slova modifikátora prístupu, bude mať predvolený prístup modifikátora.
Modifikátory prístupu | Viditeľnosť |
---|---|
Verejné | Viditeľné pre všetky triedy. |
Chránené | Viditeľné pre triedy s v balíku a podtriedach iného balíka. |
Žiadny modifikátor prístupu (predvolené) | Viditeľné pre triedy s balíkom |
súkromné | Viditeľné s v triede. Nie je prístupná mimo triedy. |
Demo trieda:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Prístup k členom triedy v inej triede:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Výkon:
Prístup k verejným členom:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Výkon:
Bobby
Dôležité body:
- Špecifikátory prístupu definujú viditeľnosť triedy.
- Ak nie je uvedené žiadne kľúčové slovo, potom je to predvolený modifikátor prístupu.
- Štyri modifikátory v Jave zahŕňajú verejné, súkromné, chránené a predvolené.
- Pre triedy a rozhrania nie je možné použiť súkromné a chránené kľúčové slová.
Záver
V tomto tutoriáli sme podrobne preskúmali Modifikátory prístupu v Jave. Java poskytuje štyri typy modifikátorov prístupu alebo špecifikátorov viditeľnosti, t. J. Predvolený, verejný, súkromný a chránený. S predvoleným modifikátorom nie je spojené žiadne kľúčové slovo.
Ak trieda, metóda alebo premenná nemá priradený špecifikátor prístupu, predpokladáme, že má predvolený prístup. Modifikátor verejného prístupu umožňuje prístup ku všetkému, či už vo vnútri alebo mimo triedy alebo balíka. V prípade verejného modifikátora nie je prístup obmedzený.
Špecifikátor chránenej viditeľnosti umožňuje prístup iba k podtriedam dediacim triedu, v ktorej sú chránení členovia deklarovaní. Modifikátor súkromného prístupu umožňuje najmenšej prístupnosti so súkromnými dátovými členmi prístup iba v rámci triedy.
Modifikátory obmedzujú rozsah dátových členov, ako sú triedy, konštruktory, metódy a premenné, a definujú limit, do ktorého majú triedy alebo balíky prístup. Špecifikátory prístupu podporujú zapuzdrenie a opätovné použitie v prostredí Java. Upozorňujeme, že triedy a rozhranie nemôžu byť chránené ani súkromné.
=> Navštívte tu a dozviete sa Java od začiatku.
Odporúčané čítanie
- Výukový program Java Reflection s príkladmi
- Výukový program JAVA pre začiatočníkov: viac ako 100 praktických výučbových programov Java Video
- Úvod do programovacieho jazyka Java - videonávod
- Výukový program Java SWING: Kontajnery, komponenty a spracovanie udalostí
- Výukový program Java String s programom String Buffer a String Builder
- Nasadenie Java: Vytvorenie a vykonanie súboru Java JAR
- Virtuálny stroj Java: Ako JVM pomáha pri spúšťaní aplikácií Java
- Výukový program Java Collections Framework (JCF)