Zapouzdření v Java
⚡ Chytré shrnutí
Zapouzdření v Java je mechanismus, který zabaluje proměnné a metody do jednoho celku a zároveň skrývá vnitřní detaily. Chrání data objektu pomocí soukromých polí a řízeného přístupu prostřednictvím veřejných metod getter a setter.

V čem je Encapsulation in Java?
Zapouzdření v Java je mechanismus, který spojuje proměnné (data) a metody (kód) do jedné jednotky. Je to proces skrývání podrobností informací a ochrana dat a chování objektu. Je to jeden ze čtyř důležitých konceptů OOP. Třída encapsulate se snadno testuje, takže je také lepší pro testování jednotek.
klikněte zde pokud video není přístupné
Naučte se zapouzdření v Java s příkladem
Chcete-li podrobně porozumět tomu, co je zapouzdření, zvažte následující třídu bankovních účtů s vkladem a ukažte způsoby zůstatku
class Account { private int account_number; private int account_balance; public void show Data() { // code to show data } public void deposit(int a) { if (a < 0) { // show error } else account_balance = account_balance + a; } }
Předpokládejme, že se hackerovi podařilo získat přístup ke kódu vašeho bankovního účtu. Nyní se snaží vložit částku -100 na váš účet dvěma způsoby. Podívejte se na jeho první metodu nebo přístup.
Přístup 1: Pokusí se vložit neplatnou částku (řekněme -100) na váš bankovní účet manipulací s kódem.
Teď je otázka – Je to možné? Nechte prozkoumat. Obvykle jsou proměnné ve třídě nastaveny jako „soukromé“, jak je uvedeno níže. Lze k němu přistupovat pouze pomocí metod definovaných ve třídě. Žádná jiná třída nebo objekt k nim nemá přístup.
Pokud je datový člen soukromý, znamená to, že k němu lze přistupovat pouze v rámci stejné třídy. Žádná vnější třída nemá přístup k soukromému datovému členu nebo proměnné jiné třídy. V našem případě tedy hacker nemůže na váš účet vložit částku -100.
Přístup 2: Hackerův první pokus o vklad částky selhal. Poté se pokusil vložit částku -100 pomocí metody „vklad“.
Ale implementace metody má kontrolu na záporné hodnoty. Takže druhý přístup také selhává.
Svá data tedy nikdy nevystavujete externí straně. Díky tomu je vaše aplikace bezpečná.
Celý kód lze považovat za kapsli a komunikovat můžete pouze prostřednictvím zpráv. Odtud název enkapsulace.
Data se skrývají Java
Data se skrývají Java skrývá proměnné třídy před ostatními třídami. Přístup k nim je možný pouze prostřednictvím metody aktuální třídy. Skrývá detaily implementace před uživateli. Ale spíše než skrývání dat je to určeno pro lepší správu nebo grouping.ping souvisejících dat. Pro dosažení menšího stupně zapouzdření v Java, můžete použít modifikátory jako „protected“ nebo „public“. Díky zapouzdření mohou vývojáři snadno změnit jednu část kódu, aniž by to ovlivnilo ostatní.
Getter a Setter dovnitř Java
Getter a Setter dovnitř Java jsou dvě konvenční metody používané k načítání a aktualizaci hodnot proměnné. Používají se hlavně k vytváření, úpravě, mazání a prohlížení hodnot proměnných. Metoda setter se používá pro aktualizaci hodnot a metoda getter se používá pro čtení nebo načítání hodnot. Jsou také známí jako přistupující a mutátoři.
Následující kód je příkladem metod getter a setter:
class Account{ private int account_number; private int account_balance; // getter method public int getBalance() { return this.account_balance; } // setter method public void setNumber(int num) { this.account_number = num; } }
Ve výše uvedeném příkladu je metoda getBalance() metoda getter, která čte hodnotu proměnné account_balance a metoda setNumber() je metoda setter, která nastavuje nebo aktualizuje hodnotu proměnné account_number.
Abstracce vs. zapouzdření
Zapouzdření je často špatně chápáno Abstracvání. Pojďme se učit-
- Zapouzdření je spíše o tom, „jak“ dosáhnout funkčnosti
- AbstracCílem je spíše o tom, „co“ daná třída dokáže.
Jednoduchým příkladem pro pochopení tohoto rozdílu je mobilní telefon. Složitá logika na desce plošných spojů je zde zapouzdřena v dotykové obrazovce a rozhraní je poskytováno abs...tracvyjádřete to.
Výhody zapouzdření v Java
- Zapouzdření je spojení dat s jejich souvisejícími funkcemi. Zde funkce znamenají „metody“ a data „proměnné“
- Udržujeme tedy proměnné a metody na jednom místě. To místo je „třída“. Třída je základem pro zapouzdření.
- S Java Zapouzdřením můžete ve svém kódu skrýt (omezit přístup) ke kritickým datovým členům, což zlepšuje zabezpečení
- Jak jsme diskutovali dříve, pokud je datový člen deklarován jako „soukromý“, lze k němu přistupovat pouze v rámci stejné třídy. Žádná externí třída nemůže přistupovat k datovému členu (proměnné) jiné třídy.
- Pokud však potřebujete k těmto proměnným přistupovat, musíte použít veřejný „getter“ a „setter“ metody.






