encapsulation java
Naučte se o zapouzdření v Javě s příklady, proč to potřebujeme, souvisejícími metodami getter a setter:
V tomto tutoriálu probereme další koncept OOP - „Zapouzdření“. OOP má čtyři pilíře, a to abstrakci, zapouzdření, polymorfismus a dědičnost.
Zatímco abstrakce se používá k vystavení koncových uživatelů pouze relevantních podrobností, zapouzdření se zabývá hlavně zabezpečením dat. Při zajišťování zabezpečení dat zapouzdření chrání datové členy před nežádoucím přístupem zadáním modifikátorů přístupu a také svazuje data do jedné jednotky.
=> Podívejte se na průvodce Perfect Java Training Guide zde.
Jak tedy můžeme definovat zapouzdření v Javě?
Definice zapouzdření
'Zapouzdření v Javě lze definovat jako mechanismus, pomocí kterého jsou data a metody, které na těchto datech pracují, zabaleny do jedné jednotky.'
Co se naučíte:
Co je zapouzdření v Javě
Pomocí zapouzdření můžeme také skrýt datové členy třídy (proměnné) před ostatními třídami. K těmto proměnným datových členů lze přistupovat nepřímo pomocí metod třídy, ve které jsou deklarovány. Tyto metody jsou zase přístupné pomocí objektu dané třídy.
Z výše uvedené definice tedy vyvozujeme, že jsme skryli proměnné datových členů uvnitř třídy a také jsme zadali modifikátory přístupu, aby nebyly přístupné ostatním třídám.
Zapouzdření je tedy také druh „skrývání dat“, i když později v tutoriálu uvidíme, že zapouzdření není totéž jako skrývání dat.
Výše uvedený obrázek představuje třídu, která je zapouzdřovací jednotkou, která sdružuje data a metody pracující s těmito daty do jedné jednotky.
Protože zapouzdření se zabývá hlavně daty, nazývá se alternativně „Zapouzdření dat“.
Můžeme si představit zapouzdření jako lékařskou kapsli. Jak všichni víme, lék je uzavřen uvnitř lékařské kapsle. Podobně jsou data a metody uzavřeny v jedné jednotce v zapouzdření.
Zapouzdření tedy funguje jako ochranný štít kolem dat a brání datům v neoprávněném přístupu vnějším světem. Jinými slovy, chrání citlivá data naší aplikace.
V Javě existují dva kroky k implementaci zapouzdření. Následují kroky:
- K deklaraci proměnných členů třídy použijte modifikátor přístupu „soukromý“.
- Pro přístup k těmto soukromým členským proměnným a ke změně jejich hodnot musíme poskytnout metody veřejného getru a setteru.
Pojďme nyní implementovat příklad zapouzdření v Javě.
Příklad zapouzdření Java
//Student_Id and name bundled in a unit 'Student' => encapsulation class Student { private int Student_Id; private String name; //getters, setters for Student_Id and name fields. public int getId() { return Student_Id; } public void setId(int s_id) { this.Student_Id = s_id; } public String getname() { return name; } public void setname(String s_name) { this.name = s_name; } } class Main{ public static void main(String() args) { //create an object of Student class Student s=new Student(); //set fields values using setter methods s.setId (27); s.setname('Tom Lee'); //print values using getter methods System.out.println('Student Data:' + '
Student ID:' + s.getId() + ' Student Name:' + s.getname()); } }
Výstup:
Ve výše uvedeném programu deklarujeme třídu, která je zapouzdřovací jednotkou. Tato třída Student spojila data (Student_Id a name) a metody pro čtení a nastavení hodnot pro tyto členy do jedné jednotky.
Poznamenejte si modifikátory přístupu přidružené k polím členů. Obě pole členů jsou soukromá, takže nejsou přístupná mimo třídu Student.
Poskytujeme getry (getId a getname) ke čtení hodnot těchto polí a metody setterů (setId a setname) pro nastavení hodnot pro tyto metody. Toto je jediný přístup, který mají, a ten by měl být také proveden pomocí objektu třídy Student.
Metody Getter a Setter
Abychom implementovali zapouzdření v Javě, vytvoříme datové členské proměnné třídy jako soukromé. Nyní tyto soukromé proměnné nejsou přístupné pro nic mimo třídu, včetně objektu třídy.
To znamená, pokud máme třídu ABC následovně.
třída ABC {
soukromý věk;
}
Vytvořme objekt třídy ABC následovně:
ABC abc = nový ABC ();
abc.age = 21; // chyba kompilátoru
Takže ve výše uvedeném kódu bude mít přístup k soukromé proměnné pomocí objektu třídy za následek chybu kompilátoru.
Abychom mohli přistupovat k soukromým proměnným a číst jejich hodnoty a nastavovat v nich nové hodnoty, potřebujeme k tomu nějaký způsob. Java tedy poskytuje způsob přístupu k soukromým proměnným pomocí metod getter a setter.
nejlepší bezplatný nástroj pro opravu systému Windows 7
Getter a Setters jsou veřejné metody, které můžeme použít k vytvoření, úpravě, odstranění nebo jednoduše zobrazení hodnot soukromých proměnných.
Níže uvedený program je příkladem metod Getter a Setter.
//Account class - private data members bundled with getters and setters class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods for each data member public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } public class Main { public static void main(String() args) { //create instance of Account class Account myAcc=new Account(); //set values for data members through setter methods myAcc.setAcc_no(775492842L); myAcc.setName('SoftwareTestingHelp.com'); myAcc.setEmail('sth_account@sth.com'); myAcc.setAmount(25000f); //read data member values through getter methods System.out.println('Account No:' + myAcc.getAcc_no()+' '+'Account Name:' + myAcc.getName()+'
'+'Account holder email:' + myAcc.getEmail()+'
' + 'Amount in Account:' + myAcc.getAmount()); } }
Výstup:
Výše uvedený program má třídu Účet a má čtyři soukromé proměnné související s účtem. Protože jsou všechny datové členy soukromé, poskytli jsme pro každou z těchto proměnných metody getter a setter.
V hlavní metodě čteme a nastavujeme hodnoty pro tyto soukromé proměnné pomocí veřejného getru a setterových metod přístupných prostřednictvím objektu třídy Account.
Skrytí dat v Javě
Často používáme zapouzdření a skrytí dat zaměnitelně. Ale oba nejsou stejné. Zapouzdření Java se zabývá seskupením souvisejících dat do jedné jednotky, aby byla zajištěna lepší správa a zabezpečení dat.
Skrytí dat na druhé straně omezuje přístup datového člena skrýváním podrobností implementace. Ačkoli zapouzdření není přesně skrývání dat, poskytuje nám způsob skrývání dat. Skrývání dat je dosaženo pomocí modifikátorů přístupu.
Java poskytuje čtyři modifikátory přístupu.
- veřejnost: Přístupný všem.
- soukromé: Přístupné pouze ve třídě.
- chráněný: Přístupné pro obsahující balíček a podtřídy.
- výchozí: Přístupné v rámci balíčku.
Zapouzdření sdružuje data do jedné jednotky, takže určitým způsobem data skryje. Díky tomu jsou data soukromá, a proto jsou nepřístupná vnějšímu světu. Pro vytvoření soukromých dat používáme modifikátor přístupu soukromý, což je koncept skrývání dat.
Zároveň jsou koncovému uživateli poskytovány pouze relevantní podrobnosti, aniž by byly odhaleny podrobnosti implementace, což je definice abstrakce. Můžeme tedy zapouzdření zobrazit jako kombinaci abstrakce i skrývání dat.
Proč potřebujeme zapouzdření
Existuje několik důvodů, proč je zapouzdření v Javě nezbytné:
- Zapouzdření nám umožňuje upravit kód nebo část kódu, aniž bychom museli měnit jakékoli další funkce nebo kód.
- Zapouzdření řídí, jak přistupujeme k datům.
- Můžeme upravit kód na základě požadavků pomocí zapouzdření.
- Díky zapouzdření jsou naše aplikace jednodušší.
Často kladené otázky
Otázka č. 1) Proč se v Javě používá zapouzdření?
Odpovědět: Zapouzdření v Javě je většinou užitečné ke skrytí dat. Jinými slovy, rozhodnout o přístupu k údajům o tom, kdo k nim má přístup a kdo ne.
Otázka 2) Co je zapouzdření v OOP?
Odpovědět: Zapouzdření je jedním z důležitých pilířů objektově orientovaného programovacího jazyka a zabývá se sdružováním dat a metod fungujících na těchto datech do jedné jednotky. Například, třída v Javě je zapouzdřená struktura. Zapouzdření se rovněž zabývá rozhodnutími týkajícími se poskytování přístupu k datům.
Otázka 3) Jaká je výhoda zapouzdření v Javě?
Odpovědět: Hlavní výhodou zapouzdření v Javě je skrývání dat. Pomocí zapouzdření můžeme programátorovi umožnit rozhodnout o přístupu k datům a metodám, které na těchto datech pracují. Například, pokud chceme, aby byla určitá část dat nepřístupná pro kohokoli mimo třídu, uděláme tato data soukromými.
Otázka č. 4) Co je proces zapouzdření?
Odpovědět: Zapouzdření je proces vyzvedávání dat z jednoho formátu nebo protokolu (z hlediska sítě) a jejich překládání nebo přeformátování do jiného formátu nebo protokolu tak, aby byla data přístupná napříč aplikacemi nebo sítí a zároveň byla chráněna.
Otázka č. 5) Jaký je poslední krok zapouzdření dat?
Odpovědět: Posledním krokem zapouzdření je změna informací o uživateli na ekvivalentní data. Pak se tato data změní na segmenty, které se dále transformují na datové pakety. Datové pakety jsou umístěny do logického rámce, který lze v softwarovém prostředí přenášet sem a tam
Závěr
Tím končí náš výukový program Zapouzdření v Javě. Zapouzdření je technika sdružování členských proměnných a metod pracujících na těchto datových členech do jedné jednotky. Třída v Javě je klasickým příkladem zapouzdření, protože zabaluje data a metody do jedné jednotky.
Java dosahuje implementace zapouzdření tím, že všechny datové členy učiní soukromými a poté poskytuje veřejné metody getter a setter, abychom mohli číst hodnoty soukromých proměnných a nastavit nové hodnoty pro tyto proměnné.
=> Navštivte zde exkluzivní sérii výukových programů Java.
Doporučené čtení
- Výukový program JAVA pro začátečníky: 100+ praktických výukových programů Java Video
- TreeMap v Javě - výuka s příklady Java TreeMap
- Výukový program Java s příklady programování
- Výukový program Java Float s příklady programování
- Reverzní řetězec Java: Výukový program s příklady programování
- Java Enum: Výukový program Java Enumeration s příklady
- Celé číslo Java a třída Java BigInteger s příklady
- Java String obsahuje () Výukový program metod s příklady