Zapuzdrenie v Jave - Ako zvládnuť OOP pomocou zapuzdrenia?



Tento článok o zapuzdrení v prostredí Java vám pomôže pochopiť základné koncepty skrytia podrobností implementácie spolu s rôznymi jednoduchými príkladmi.

Objektovo orientované programovanie alebo lepšie známe ako OOP je jedným z hlavných pilierov Javy, ktorá využila svoju silu a jednoduché použitie. Ak sa chcete stať profesionálnym vývojárom Java, musíte získať bezchybnú kontrolu nad rôznymi Páči sa mi to , Abstrakcia , Zapuzdrenie a polymorfizmus. Prostredníctvom tohto článku vám poskytnem kompletný pohľad na jeden z najdôležitejších konceptov OOP, tj. Zapuzdrenie v Jave a na to, ako sa ho dosahuje.

Ďalej uvádzam témy, ktorým sa budem v tomto článku venovať:





Môžete tiež prejsť týmto záznamom kde môžete podrobne porozumieť témam pomocou príkladov.



Úvod do zapuzdrenia

Zapuzdrenie označuje zhrnutie údajov do jednej jednotky. Je to mechanizmus, ktorý viaže kód a údaje, s ktorými manipuluje. Ďalším spôsobom, ako uvažovať o zapuzdrení, je ochranný štít, ktorý zabraňuje prístupu k údajom pomocou kódu mimo tohto štítu. V tomto sú premenné alebo údaje a je skrytý pred akoukoľvek inou triedou a je k nemu prístup iba prostredníctvom ktorejkoľvek členskej funkcie vlastnej triedy, v ktorej sú deklarované.

Teraz si vezmime príklad lekárskej kapsuly, kde je liek vo vnútri kapsuly vždy bezpečný. Podobne, prostredníctvom zapuzdrenia sú metódy a premenné triedy dobre skryté a bezpečné.



Zapuzdrenie - zapuzdrenie v prostredí Java-EdurekaZapuzdrenie v Jave je možné dosiahnuť:

  • Deklarovanie premenných triedy ako súkromné.
  • Poskytovanie metód verejného setra a getra na úpravu a prezeranie hodnôt premenných.

Pozrime sa teraz na kód, aby sme lepšie pochopili zapuzdrenie:

public class Student {private String name public String getName () {return name} public void setName (String name) {this.name = name}} class Test {public static void main (String [] args) {Student s = new Student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

Ako vidíte vo vyššie uvedenom kóde, vytvoril som triedu Student, ktorá má súkromnú názov . Ďalej som vytvoril getter a setter, aby som získal a nastavil meno študenta. Pomocou týchto metód to musí každá trieda, ktorá chce získať prístup k premennej názvu, urobiť pomocou týchto metód getra a setra.

Teraz si ukážeme ešte jeden príklad a podrobne pochopíme zapuzdrenie. V tomto príklade má trieda Auto dve polia - meno a topSpeed. Tu sú obidve vyhlásené za súkromné, čo znamená, že k nim nie je možné získať prístup priamo mimo triedy. Máme niekoľko metód getra a setra, ako sú getName, setName, setTopSpeed ​​atď., A sú deklarované ako verejné. Tieto metódy sú vystavené „cudzincom“ a je možné ich použiť na zmenu a načítanie údajov z objektu Car. Máme jednu metódu nastavenia maximálnej rýchlosti vozidla a dve metódy getra na získanie hodnoty maximálnej rýchlosti buď v MPH alebo KMHt. Takže v podstate to je to, čo zapuzdrenie robí - skryje implementáciu a dá nám požadované hodnoty. Teraz sa pozrime na kód uvedený nižšie.

balíček Edureka verejná trieda Auto {private Názov reťazca private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (názov reťazca) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} verejné double getTopSpeedMPH () {návrat topSpeed} verejné double getTopSpeedKMH () {návrat topSpeed ​​* 1,609344}}

Tu hlavný program vytvorí objekt Car s daným menom a pomocou metódy setter uloží najvyššiu rýchlosť pre túto inštanciu. Týmto spôsobom môžeme ľahko získať rýchlosť v MPH alebo KMH bez toho, aby sme sa zaujímali o to, ako sa prevádza rýchlosť v triede Car.

balík Edureka verejná trieda Príklad {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4,8-litrový V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'najvyššia rýchlosť v MPH je' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'najvyššia rýchlosť v KMH je' + car.getTopSpeedKMH ())

So, takto je možné dosiahnuť zapuzdrenie v prostredí Java. Poďme teraz ďalej a pozrime sa, prečo potrebujeme Zapuzdrenie.

ako previesť double na int v jave -

Prečo potrebujeme zapuzdrenie v Jave?

Zapuzdrenie je v prostredí Java nevyhnutné, pretože:

  • Kontroluje spôsob prístupnosti údajov
  • Upraví kód na základe požiadaviek
  • Pomáha nám dosiahnuť voľný pár
  • Dosahuje jednoduchosť našej aplikácie
  • Umožňuje vám tiež zmeniť časť kódu bez prerušenia akýchkoľvek ďalších funkcií alebo kódu prítomného v programe

Pozrime sa na malý príklad, ktorý ilustruje potrebu zapuzdrenia.

trieda Student {int id Názov reťazca} verejná trieda Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

Vo vyššie uvedenom príklade obsahuje dve inštančné premenné ako modifikátor prístupu. Takže ktorákoľvek trieda v rovnakom balíku môže priradiť a zmeniť hodnoty týchto premenných vytvorením objektu tejto triedy. Nemáme teda kontrolu nad hodnotami uloženými v triede Student ako premenné. Aby sme tento problém vyriešili, zapuzdrujeme triedu Student.

To bolo teda niekoľko ukazovateľov, ktoré znázorňujú potrebu zapuzdrenia. Teraz sa pozrime na niektoré výhody zapuzdrenia.

Výhody zapuzdrenia

    • Skrytie údajov: Tu nebude mať používateľ žiadnu predstavu o vnútornej implementácii triedy. Ani užívateľ si nebude vedomý, ako trieda ukladá hodnoty do premenných. Bude si vedomý iba toho, že odovzdávame hodnoty nastavovacej metóde a premenné sa inicializujú s touto hodnotou.
    • Zvýšená flexibilita: Tu môžeme premenné triedy nastaviť ako iba na čítanie alebo iba na zápis v závislosti od našej požiadavky. V prípade, že chcete premenné robiť iba na čítanie, musíme vynechať metódy setteru ako setName (),setAge() atď. alebo ak chceme premenné vytvárať iba na zápis, musíme z vyššie uvedeného programu vynechať metódy get ako getName (), getAge () atď.
    • Opätovná použiteľnosť: Zlepšuje tiež opätovnú použiteľnosť a je ľahko zmeniteľný s novými požiadavkami.

Teraz, keď sme pochopili základy zapuzdrenia, poďme sa ponoriť do poslednej témy tohto článku a podrobne sa porozumieme zapuzdreniu pomocou príkladu v reálnom čase.

Príklad zapuzdrenia v reálnom čase

Uvažujme o televíznom príklade a pochopme, ako sú interné podrobnosti implementácie skryté pred vonkajšou triedou.V podstate v tomto príklade skrývame krytom údaje vnútorného kódu, t. J. Obvody z vonkajšieho sveta. Teraz v , to sa dá dosiahnuť pomocou modifikátorov prístupu. Modifikátory prístupu nastavujú prístup alebo úroveň triedy, premenné konštruktorov atď. Ako vidíte v nasledujúcom kóde, na obmedzenie úrovne prístupu triedy som použil modifikátor súkromného prístupu. Premenné deklarované ako súkromné ​​sú prístupné iba v rámci triedy Televízia.

public class Television {private double width private double height private double Screensize private int maxVolume print int volume private boolean power public Television (double width, double height, double screenSize) {this.width this.height this.screenSize = ScreenSize} public double channelTuning (int kanál) {switch (channel) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int poklesVolume () {if (0volume) volume ++ return volume}} test triedy {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () television. // Chyba hodu ako premenná je súkromná a nie je k nej prístup mimo triedy}}

Vo vyššie uvedenom príklade som deklaroval všetky premenné ako súkromné ​​a metódy, konštruktory a triedu ako verejné. Tu je možné pristupovať k konštruktérom a metódam aj mimo triedy. Keď tvorímobjekttriedy Televízia má prístup k metódam a konštruktorom prítomným v triede, zatiaľ čo premenné deklarované pomocou modifikátora súkromného prístupu sú skryté. Preto sa pri pokuse o prístup šírka variabilná vo vyššie uvedenom príklade hodíchyba. Takto sú interné podrobnosti implementácie skryté pred ostatnými triedami. Takto sa dosahuje zapuzdrenie v prostredí Java.

Týmto sa dostávame na koniec tohto článku o „Zapuzdrení v Jave“. Dúfam, že ste to zistili informatívne a pomohlo vám to zhodnotiť vaše vedomosti. Ak sa chcete dozvedieť viac informácií o prostredí Java, môžete sa pozrieť na stránku

Teraz, keď ste pochopili „čo je Zapuzdrenie v Jave“, pozrite sa na autor: Edureka, dôveryhodná online vzdelávacia spoločnosť so sieťou viac ako 250 000 spokojných študentov rozmiestnených po celom svete. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je určený pre študentov a profesionálov, ktorí chcú byť vývojármi Java. Kurz je navrhnutý tak, aby vám dal náskok v programovaní v jazyku Java a naučil vás základné aj pokročilé koncepty jazyka Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov v tomto blogu „Encapsulation in Java“ a my sa vám ozveme čo najskôr.