Čo je zapuzdrenie v prostredí Java?
Zapuzdrenie v prostredí Java je mechanizmus na zhrnutie premenných (údajov) a metód (kódu) do jednej jednotky. Je to proces skrývania podrobností informácií a ochrany údajov a správania objektu. Je to jeden zo štyroch dôležitých konceptov OOP. Trieda zapuzdrenia sa dá ľahko otestovať, takže je lepšia aj na testovanie jednotiek.
V tomto návode sa naučíte
- Čo je zapuzdrenie v prostredí Java?
- Naučte sa zapuzdrenie pomocou príkladu
- Skrývanie údajov v Jave
- Metódy getra a setra v Jave
- Abstrakcia vs. zapuzdrenie
- Výhody zapuzdrenia v Jave
Ak video nie je prístupné, kliknite sem
Naučte sa zapuzdrenie pomocou príkladu
Ak chcete pochopiť, čo je zapuzdrenie podrobne, zvážte nasledujúcu triedu bankových účtov s metódami vkladu a ukážte zostatok
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} elseaccount_balance = account_balance + a;}}
Predpokladajme, že sa hackerovi podarilo získať prístup ku kódu vášho bankového účtu. Teraz sa pokúsi na váš účet vložiť čiastku -100 dvoma spôsobmi. Pozrime sa na jeho prvú metódu alebo prístup.
Prístup 1: Manipuláciou s kódom sa pokúsi vložiť na váš bankový účet neplatnú sumu (povedzme –100).
Teraz je namieste otázka - Je to možné? Nechajme to vyšetriť.
Premenná v triede je zvyčajne nastavená ako „súkromná“, ako je uvedené nižšie. Prístup k nim je možný iba metódami definovanými v triede. Žiadna iná trieda alebo objekt k nim nemá prístup.
Ak je dátový člen súkromný, znamená to, že k nemu je možné pristupovať iba v rámci tej istej triedy. Žiadna vonkajšia trieda nemá prístup k súkromným údajovým členom alebo premenným inej triedy.
V našom prípade teda nemôže hacker vložiť na váš účet čiastku -100.
Prístup 2 : Prvý prístup hackera sa nepodarilo vložiť sumu. Ďalej sa pokúsi vložiť čiastku -100 pomocou metódy „vklad“.
Implementácia metódy však má kontrolu na záporné hodnoty. Takže druhý prístup tiež zlyháva.
Svoje údaje teda nikdy nevystavujete externej strane. Vďaka čomu je vaša aplikácia bezpečná.
Celý kód je možné vymyslieť ako kapsulu a vy môžete komunikovať iba prostredníctvom správ. Odtiaľ pochádza aj zapuzdrenie názvu.
Skrývanie údajov v Jave
Skrývanie údajov v Jave skrýva premenné triedy pred inými triedami. Je k nim prístup iba metódou ich aktuálnej triedy. Skryje implementačné podrobnosti pred užívateľmi. Ale viac ako skrývanie údajov je to určené na lepšiu správu alebo zoskupenie súvisiacich údajov.
Ak chcete dosiahnuť menšiu mieru zapuzdrenia v prostredí Java, môžete použiť modifikátory ako „chránené“ alebo „verejné“. Vďaka zapuzdreniu môžu vývojári ľahko zmeniť jednu časť kódu bez toho, aby ovplyvnili inú.
Getter a Setter v Jave
Getter a Setter v Jave sú dve konvenčné metódy používané na získanie a aktualizáciu hodnôt premennej. Používajú sa hlavne na vytváranie, úpravy, mazanie a prezeranie hodnôt premenných. Na aktualizáciu hodnôt sa používa metóda setter a na čítanie alebo načítanie hodnôt metóda getter. Oni sú tiež známi ako accessor a mutator.
Nasledujúci kód je príkladom metód getra a setra:
class Account{private int account_number;private int account_balance;// getter methodpublic int getBalance() {return this.account_balance;}// setter methodpublic void setNumber(int num) {this.account_number = num;}}
Vo vyššie uvedenom príklade je metóda getBalance () getterová metóda, ktorá číta hodnotu premennej account_balance, a metóda setNumber () je setterová metóda, ktorá nastavuje alebo aktualizuje hodnotu premennej account_number.
Abstrakcia vs. zapuzdrenie
Zapuzdrenie je pri Abstrakcii často nepochopené. Umožňuje študovať-
- Zapuzdrenie je skôr o tom, „ako“ dosiahnuť funkčnosť
- Abstrakcia je viac o tom, „čo“ trieda dokáže.
Jednoduchým príkladom na pochopenie tohto rozdielu je mobilný telefón. Tam, kde je komplexná logika v doske s obvodmi zapuzdrená na dotykovej obrazovke, a poskytuje sa rozhranie, aby sa získala abstraktná hodnota.
Výhody zapuzdrenia v Jave
- Zapuzdrenie viaže údaje so súvisiacimi funkciami. Funkcie tu znamenajú „metódy“ a dáta znamenajú „premenné“.
- Variabilitu a metódy teda uchovávame na jednom mieste. Toto miesto je „trieda“. Trieda je základom pre zapuzdrenie.
- Pomocou Java Encapsulation môžete skryť (obmedziť prístup) kritických dátových členov vo svojom kóde, čo zvyšuje bezpečnosť
- Ako sme už diskutovali, ak je dátový člen vyhlásený za „súkromný“, potom k nemu možno získať prístup iba v rámci tej istej triedy. Žiadna vonkajšia trieda nemá prístup k údajovým členom (premenným) inej triedy.
- Ak však potrebujete získať prístup k týmto premenným, musíte použiť verejné metódy „getter“ a „setter“ .