access modifiers java tutorial with examples
Tento videonávod vysvětluje, co jsou Modifikátory přístupu v Javě a jak používat Výchozí, Veřejný, Chráněný a Soukromý modifikátor přístupu, pomocí příkladů:
V Javě máme třídy a objekty. Tyto třídy a objekty jsou obsaženy v balíčku. Kromě toho mohou mít třídy vnořené třídy, metody, proměnné atd. Protože Java je objektově orientovaný programovací jazyk, musíme postupovat podle zapouzdření, ve kterém skryjeme nechtěné podrobnosti.
Java poskytuje entity zvané „Modifikátory přístupu nebo specifikátory přístupu“, které nám pomáhají omezit rozsah nebo viditelnost balíčku, třídy, konstruktoru, metod, proměnných nebo jiných datových členů. Tyto modifikátory přístupu se také nazývají „Specifikátory viditelnosti“.
Pomocí specifikátorů přístupu lze metodu nebo proměnnou konkrétní třídy omezit na přístup nebo skrýt před ostatními třídami.
=> Zkontrolujte VŠECHNY výukové programy Java zde.
který operační systém je pro notebook nejlepší
Co se naučíte:
- Výukový program o modifikátorech přístupu v Javě
- Modifikátory přístupu v Javě
- Typy modifikátorů přístupu v Javě
- Závěr
Výukový program o modifikátorech přístupu v Javě
Modifikátory přístupu v Javě
Specifikátory přístupu také určují, ke kterým datovým členům (metodám nebo polím) třídy mohou přistupovat ostatní datoví členové tříd nebo balíčků atd. K zajištění zapouzdření a opětovného použití jsou tyto specifikátory / modifikátory přístupu nedílnou součástí objektově orientovaného programování.
Modifikátory v Javě jsou dvou typů:
# 1) Modifikátory přístupu
Modifikátory přístupu v Javě nám umožňují nastavit rozsah nebo přístupnost nebo viditelnost datového člena, ať už jde o pole, konstruktor, třídu nebo metodu.
# 2) Nepřístupové modifikátory
Java také poskytuje specifikátory nepřístupu, které se používají s třídami, proměnnými, metodami, konstruktory atd. Specifikátory / modifikátory nepřístupu definují chování entit vůči JVM.
Některé ze specifikátorů / modifikátorů nepřístupu v Javě jsou:
- statický
- finále
- abstraktní
- přechodný
- nestálý
- synchronizované
- rodák
V našich dřívějších výukových programech jsme zahrnovali statická, synchronizovaná a nestálá klíčová slova. Budeme se zabývat dalšími modifikátory nepřístupu v našich budoucích tutoriálech, protože jsou nad rámec tohoto tutoriálu.
Typy modifikátorů přístupu v Javě
Java poskytuje čtyři typy specifikátorů přístupu, které můžeme použít s třídami a jinými entitami.
Tyto jsou:
# 1) Výchozí: Kdykoli není specifikována konkrétní úroveň přístupu, předpokládá se, že je „výchozí“. Rozsah výchozí úrovně je v balíčku.
# 2) Veřejné: Toto je nejběžnější úroveň přístupu a kdykoli se použije specifikátor veřejného přístupu s entitou, je tato konkrétní entita přístupná zevnitř nebo mimo třídu, uvnitř nebo vně balíčku atd.
# 3) Chráněno: Úroveň chráněného přístupu má obor, který je v balíčku. Chráněná entita je také přístupná mimo balíček prostřednictvím zděděné třídy nebo podřízené třídy.
# 4) Soukromé: Když je entita soukromá, nelze k této entitě přistupovat mimo třídu. Soukromá entita může být přístupná pouze zevnitř třídy.
Můžeme shrnout modifikátory přístupu v následující tabulce.
Specifikátor přístupu | Uvnitř třídy | Vnitřní balíček | Podtřída vnějšího balíčku | Vnější obal |
---|---|---|---|---|
Soukromé | Ano | Ne | Ne | Ne |
Výchozí | Ano | Ano | Ne | Ne |
Chráněný | Ano | Ano | Ano | Ne |
Veřejnost | Ano | Ano | Ano | Ano |
Dále budeme podrobně diskutovat o každém z těchto specifikátorů přístupu.
Výchozí specifikátory přístupu
Výchozí modifikátor přístupu v Javě nemá žádné konkrétní klíčové slovo. Kdykoli není zadán modifikátor přístupu, předpokládá se, že je výchozí. Entity jako třídy, metody a proměnné mohou mít výchozí přístup.
Výchozí třída je přístupná uvnitř balíčku, ale není přístupná zvenčí balíčku, tj. Všechny třídy uvnitř balíčku, ve kterém je definována výchozí třída, mají přístup k této třídě.
Podobně je výchozí metoda nebo proměnná přístupná také uvnitř balíčku, ve kterém jsou definovány, a ne mimo balíček.
Níže uvedený program demonstruje výchozí modifikátor přístupu v Javě.
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ýstup:
Ve výše uvedeném programu máme uvnitř třídu a metodu bez jakéhokoli modifikátoru přístupu. Z tohoto důvodu má zobrazení třídy i metody výchozí přístup. Pak vidíme, že v metodě můžeme přímo vytvořit objekt třídy a zavolat metodu.
Modifikátor veřejného přístupu
Třída nebo metoda nebo datové pole určené jako „veřejné“ je přístupné z jakékoli třídy nebo balíčku v programu Java. Veřejná entita je přístupná v rámci balíčku i mimo něj. Obecně je modifikátor veřejného přístupu modifikátor, který entitu vůbec neomezuje.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Výstup:
Specifikátor chráněného přístupu
Specifikátor chráněného přístupu umožňuje přístup k entitám prostřednictvím podtříd třídy, ve které je entita deklarována. Nezáleží na tom, zda je třída ve stejném balíčku nebo jiném balíčku, ale pokud je třída, která se pokouší získat přístup k chráněné entitě, podtřídou této třídy, je entita přístupná.
Všimněte si, že třídu a rozhraní nelze chránit, tj. Nemůžeme použít chráněné modifikátory na třídy a rozhraní.
Modifikátor chráněného přístupu se obvykle používá ve vztazích rodič - dítě.
Níže uvedený program demonstruje použití modifikátoru chráněného přístupu v Javě.
//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ýstup:
Modifikátor soukromého přístupu
„Soukromý“ modifikátor přístupu je ten, který má nejnižší úroveň přístupnosti. Metody a pole, které jsou deklarovány jako soukromé, nejsou přístupné mimo třídu. Jsou přístupné pouze v rámci třídy, která má tyto soukromé entity jako členy.
Všimněte si, že soukromé entity nejsou viditelné ani pro podtřídy třídy. Modifikátor soukromého přístupu zajišťuje zapouzdření v Javě.
Je třeba si uvědomit některé body týkající se modifikátoru soukromého přístupu.
- Modifikátor soukromého přístupu nelze použít pro třídy a rozhraní.
- Rozsah soukromých entit (metod a proměnných) je omezen na třídu, ve které jsou deklarovány.
- Třída se soukromým konstruktorem nemůže vytvořit objekt třídy z jiného místa, jako je hlavní metoda. (Více podrobností o soukromých konstruktorech bylo vysvětleno v našem dřívějším tutoriálu).
Níže uvedený program Java používá modifikátor soukromého pří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ýstup:
Výše uvedený program dává chybu kompilace, když se pokoušíme získat přístup k soukromým datovým členům pomocí objektu třídy.
Existuje ale metoda přístupu k soukromým proměnným členů. Tato metoda používá getry a settery v Javě. Takže poskytujeme veřejnou metodu get ve stejné třídě, ve které je deklarována soukromá proměnná, aby getter mohl číst hodnotu soukromé proměnné.
Podobně poskytujeme metodu veřejného nastavovače, která nám umožňuje nastavit hodnotu soukromé proměnné.
Následující program Java demonstruje použití metod getter a setter pro soukromé proměnné v Javě.
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ýstup:
jak mohu hrát soubory SWF
Výše uvedený program má třídu se soukromou proměnnou řetězce. Poskytujeme veřejnou metodu getName člena, která vrací hodnotu soukromé proměnné. Ve třídě také poskytujeme veřejnou metodu setName, která jako argument přebírá řetězec a přiřadí jej soukromé proměnné.
Jelikož jsou obě metody veřejné, můžeme k nim snadno přistupovat pomocí objektu třídy. Tímto způsobem můžeme překonat chybu kompilace, která se objeví pokaždé, když se pokusíme získat přístup k soukromým datovým členům třídy.
Často kladené otázky
Otázka č. 1) Kolik modifikátorů přístupu je v Javě?
Odpovědět: Java poskytuje čtyři modifikátory, tj. Výchozí, veřejné, chráněné a soukromé.
Otázka 2) Co jsou modifikátory přístupu a modifikátory přístupu v Javě?
Odpovědět: Modifikátory přístupu definují viditelnost nebo rozsah entity programu, jako je třída nebo metoda nebo proměnná nebo konstruktor. Modifikátory nepřístupu definují chování entity. Například, synchronizovaná metoda nebo blok označuje, že může pracovat v prostředí více vláken, konečná proměnná označuje, že se jedná o konstantu.
Otázka č. 3) Proč jsou Specifikátory přístupu důležité?
Odpovědět: Modifikátory určují, která třída má přístup ke kterým dalším třídám nebo metodám nebo proměnným. Pomocí specifikátorů přístupu můžeme omezit přístup různých tříd, metod, konstruktorů a proměnných a také zajistit zapouzdření a opětovné použití entit Java.
Otázka č. 4) Které modifikátory se ve třídě nepoužívají?
Odpovědět: Chráněné a soukromé modifikátory se pro třídu nepoužívají.
Otázka č. 5) Co jsou modifikátory nepřístupu?
Odpovědět: Modifikátory, které definují chování entit, jako jsou třída, metoda nebo proměnné, se kterými jsou spojeny, jsou modifikátory bez přístupu. Jak název napovídá, přístup neurčují. Java poskytuje různé modifikátory nepřístupu, jako jsou statické, konečné, synchronizované, nestálé, abstraktní atd.
Více o modifikátorech viditelnosti
Java poskytuje mnoho modifikátorů pro přístup k proměnné, metodám a konstruktorům.
V Javě existují 4 typy přístupových proměnných:
- Soukromé
- Veřejnost
- Výchozí
- Chráněný
# 1) Soukromé
Pokud je proměnná deklarována jako soukromá, lze k ní přistupovat v rámci třídy. Tato proměnná nebude mimo třídu k dispozici. Vnější členové tedy nemají přístup k soukromým členům.
Poznámka: Třídy a rozhraní nemohou být soukromé.
# 2) Veřejné
Metody / proměnné s veřejnými modifikátory jsou přístupné všem ostatním třídám v projektu.
# 3) Chráněno
Pokud je proměnná deklarována jako chráněná, lze k ní přistupovat ve stejných třídách balíků a podtřídách jakýchkoli jiných balíčků.
Poznámka: Modifikátor chráněného přístupu nelze použít pro třídu a rozhraní.
# 4) Výchozí modifikátor přístupu
Pokud je proměnná / metoda definována bez klíčového slova modifikátoru přístupu, bude mít výchozí přístup modifikátoru.
Modifikátory přístupu | Viditelnost |
---|---|
Veřejnost | Viditelné pro všechny třídy. |
Chráněný | Viditelné pro třídy s v balíčku a podtřídách jiného balíčku. |
Žádný modifikátor přístupu (výchozí) | Viditelné pro třídy s balíčkem |
soukromé | Viditelné ve třídě. Není přístupný mimo třídu. |
Demo třída:
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; } }
Přístup ke členům třídy v jiné třídě:
nejlepší software pro klonování disků Windows 10
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Výstup:
Přístup k veřejným členům:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Výstup:
Bobby
Důležité body:
- Specifikátory přístupu definují viditelnost třídy.
- Pokud není uvedeno žádné klíčové slovo, pak je to výchozí modifikátor přístupu.
- Čtyři modifikátory v Javě zahrnují veřejné, soukromé, chráněné a výchozí.
- Soukromá a chráněná klíčová slova nelze použít pro třídy a rozhraní.
Závěr
V tomto kurzu jsme podrobně prozkoumali Modifikátory přístupu v Javě. Java poskytuje čtyři typy modifikátorů přístupu nebo specifikátorů viditelnosti, tj. Výchozí, veřejný, soukromý a chráněný. Výchozí modifikátor nemá přidruženo žádné klíčové slovo.
Když třída nebo metoda nebo proměnná nemá přidružený specifikátor přístupu, předpokládáme, že má výchozí přístup. Modifikátor veřejného přístupu umožňuje přístup ke všemu, ať už uvnitř nebo vně třídy nebo balíčku. V případě veřejného modifikátoru neexistuje žádné omezení přístupu.
Specifikátor chráněné viditelnosti umožňuje přístup pouze k podtřídám, které dědí třídu, ve které jsou chráněné členy deklarovány. Modifikátor soukromého přístupu umožňuje přístup k nejméně přístupným členům soukromých dat pouze v rámci třídy.
Modifikátory omezují rozsah datových členů, jako jsou třídy, konstruktory, metody a proměnné, a definují limit, ke kterým třídám nebo balíčkům k nim mají přístup. Specifikátory přístupu podporují zapouzdření a opětovné použití v Javě. Upozorňujeme, že třídy a rozhraní nemohou být chráněné ani soukromé.
=> Navštivte zde a dozvíte se Java od začátku.
Doporučené čtení
- Výukový program Java Reflection s příklady
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- Úvod do programovacího jazyka Java - výukový program
- Výukový program Java SWING: Kontejner, komponenty a zpracování událostí
- Výukový program Java String s funkcí String Buffer a String Builder
- Implementace Java: Vytvoření a spuštění souboru Java JAR
- Virtuální stroj Java: Jak JVM pomáhá při spouštění aplikace Java
- Výukový program Java Collections Framework (JCF)