Zapouzdření v prostředí Java OOP s příkladem

Obsah:

Anonim

Co je zapouzdření v Javě?

Zapouzdření v Javě je mechanismus k zabalení proměnných (dat) a metod (kódu) dohromady do jedné jednotky. Jedná se o proces skrývání podrobností informací a ochrany dat a chování objektu. Je to jeden ze čtyř důležitých konceptů OOP. Třídu zapouzdření lze snadno otestovat, takže je také lepší pro testování jednotek.

V tomto výukovém programu se naučíte

  • Co je zapouzdření v Javě?
  • Naučte se zapouzdření pomocí příkladu
  • Skrytí dat v Javě
  • Metody Getter a Setter v Javě
  • Abstrakce vs. zapouzdření
  • Výhody zapouzdření v Javě

Pokud video není přístupné, klikněte sem

Naučte se zapouzdření pomocí příkladu

Abychom pochopili, co je zapouzdření podrobně, zvažte následující třídu bankovních účtů s metodami vkladu a zobrazení 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} elseaccount_balance = account_balance + a;}}

Předpokládejme, že hackerovi se podařilo získat přístup ke kódu vašeho bankovního účtu. Nyní se pokusí na váš účet vložit částku -100 dvěma způsoby. Podívejme se na jeho první metodu nebo přístup.

Přístup 1: Manipulací s kódem se pokusí vložit neplatnou částku (řekněme -100) na váš bankovní účet.

Otázkou nyní je - Je to možné? Nechte to vyšetřit.

Proměnná ve třídě je obvykle nastavena 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ým datovým členům nebo proměnným jiné třídy.

V našem případě tedy hacker nemůže na váš účet vložit částku -100.

Přístup 2 : První přístup hackera se nepodařilo vložit částku. Dále se pokusí provést vklad -100 pomocí metody „vklad“.

Implementace metody má ale kontrolu záporných hodnot. Druhý přístup tedy také selže.

Proto nikdy nevystavujete svá data externí straně. Díky čemuž je vaše aplikace zabezpečená.

Celý kód lze považovat za kapsli a můžete komunikovat pouze prostřednictvím zpráv. Odtud název zapouzdření.

Skrytí dat v Javě

Data Hiding in Java skrývá proměnné třídy před jinými třídami. Lze k nim přistupovat pouze metodou jejich aktuální třídy. Skrývá podrobnosti o implementaci před uživateli. Ale více než skrývání dat je to určeno pro lepší správu nebo seskupení souvisejících dat.

Chcete-li dosáhnout menšího stupně zapouzdření v Javě, můžete použít modifikátory jako „chráněné“ nebo „veřejné“. Díky zapouzdření mohou vývojáři snadno změnit jednu část kódu, aniž by to ovlivnilo jiné.

Getter a Setter v Javě

Getter a Setter v Javě jsou dvě běžné metody používané k načtení a aktualizaci hodnot proměnné. Používají se hlavně k vytváření, úpravám, 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. Oni jsou také známí jako accessor a mutator.

Následující kód je příkladem metod getter a setter:

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;}}

Ve výše uvedeném příkladu je metoda getBalance () metodou getter, která čte hodnotu proměnné account_balance a metodou setNumber () je metodou setter, která nastavuje nebo aktualizuje hodnotu proměnné account_number.

Abstrakce vs. zapouzdření

Zapouzdření je u Abstrakce často nepochopeno. Pojďme se učit-

  • Zapouzdření je více o tom, „jak“ dosáhnout funkčnosti
  • Abstrakce je více o tom, „co“ třída může dělat.

Jednoduchým příkladem pro pochopení tohoto rozdílu je mobilní telefon. Kde je komplexní logika v desce s plošnými spoji zapouzdřena na dotykové obrazovce a je k dispozici rozhraní, které ji abstrahuje.

Výhody zapouzdření v Javě

  • Zapouzdření váže data se souvisejícími funkcemi. Zde funkce znamenají „metody“ a data znamenají „proměnné“
  • Proměnné a metody tedy uchováváme na jednom místě. Tím místem je „třída“. Třída je základem pro zapouzdření.
  • Pomocí Java Encapsulation můžete skrýt (omezit přístup) kritickým datovým členům ve svém kódu, což zvyšuje zabezpečení
  • Jak jsme diskutovali dříve, je-li datový člen prohlášen za „soukromý“, lze k němu přistupovat pouze v rámci stejné třídy. Žádná vnější třída nemá přístup k datovému členu (proměnné) jiné třídy.
  • Pokud však potřebujete tyto proměnné zpřístupnit, musíte použít veřejné metody „getter“ a „setter“ .