Zapouzdření v Javě - Jak zvládnout OOP pomocí zapouzdření?

Tento článek o zapouzdření v Javě vám pomůže porozumět základním konceptům skrytí podrobností implementace spolu s různými jednoduchými příklady.

Objektově orientované programování nebo lépe známé jako OOP je jedním z hlavních pilířů Javy, který využil svou sílu a snadné použití. Chcete-li se stát profesionálním vývojářem prostředí Java, musíte získat bezchybnou kontrolu nad různými jako , Abstrakce , Zapouzdření a polymorfismus. Prostřednictvím tohoto článku vám poskytnu úplný přehled o jednom z nejdůležitějších konceptů OOP, tj. Zapouzdření v Javě a o tom, jak je toho dosaženo.

Níže uvádíme témata, kterým se budu v tomto článku věnovat:





Můžete také projít touto nahrávkou kde můžete podrobně pochopit témata pomocí příkladů.



Úvod do zapouzdření

Zapouzdření označuje zabalení dat do jedné jednotky. Je to mechanismus, který váže kód a data, s nimiž manipuluje. Dalším způsobem, jak přemýšlet o zapouzdření, je, že je to ochranný štít, který zabraňuje přístupu k datům kódem mimo tento štít. V tomto jsou proměnné nebo data a je skrytý před jakoukoli jinou třídou a je přístupný pouze prostřednictvím jakékoli členské funkce vlastní třídy, ve které jsou deklarovány.

Nyní si vezměme příklad lékařské kapsle, kde je droga uvnitř kapsle vždy bezpečná. Podobně prostřednictvím zapouzdření jsou metody a proměnné třídy dobře skryté a bezpečné.



Zapouzdření - Zapouzdření v prostředí Java-EdurekaZapouzdření v Javě lze dosáhnout:

  • Deklarace proměnných třídy jako soukromé.
  • Poskytování veřejných setterových a getterových metod k úpravám a zobrazení hodnot proměnných.

Nyní se podívejme na kód, abychom lépe porozuměli zapouzdření:

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 ())}}

Jak vidíte ve výše uvedeném kódu, vytvořil jsem třídu Student, která má soukromý název . Dále jsem vytvořil getter a setter, abych získal a nastavil jméno studenta. S pomocí těchto metod to musí každá třída, která si přeje získat přístup k proměnné name, udělat pomocí těchto metod getter a setter.

Nyní se podívejme na další příklad a podrobně pochopíme Zapouzdření. V tomto příkladu má třída Car dvě pole –name a topSpeed. Zde jsou oba deklarovány jako soukromé, což znamená, že k nim nelze přistupovat přímo mimo třídu. Máme několik metod getter a setter jako getName, setName, setTopSpeed ​​atd. A jsou deklarovány jako veřejné. Tyto metody jsou vystaveny „cizincům“ a lze je použít ke změně a načtení dat z objektu Car. Máme jednu metodu pro nastavení nejvyšší rychlosti vozidla a dvě metody pro získání maximální hodnoty rychlosti buď v MPH nebo KMHt. Takže v podstatě to je to, co zapouzdření dělá - skrývá implementaci a dává nám hodnoty, které chceme. Nyní se podívejme na kód níže.

balíček Edureka veřejná třída Car {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} veřejné double getTopSpeedMPH () {návrat topSpeed} veřejné double getTopSpeedKMH () {návrat topSpeed ​​* 1,609344}}

Zde hlavní program vytvoří objekt Car s daným názvem a použije metodu setter k uložení nejvyšší rychlosti pro tuto instanci. Tímto způsobem můžeme snadno získat rychlost v MPH nebo KMH, aniž bychom se museli starat o to, jak se ve třídě Car převádí rychlost.

balíček Edureka veřejná třída Příklad {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-liter V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + 'nejvyšší rychlost v MPH je' + car.getTopSpeedMPH ()) System.out.println (car.getName () + 'nejvyšší rychlost v KMH je' + car.getTopSpeedKMH ())

So, takto lze dosáhnout zapouzdření v Javě. Pojďme nyní dále a podívejme se, proč potřebujeme zapouzdření.

c ++ přejít na

Proč potřebujeme zapouzdření v Javě?

Zapouzdření je v Javě nezbytné, protože:

  • Řídí způsob přístupnosti dat
  • Upravuje kód na základě požadavků
  • Pomáhá nám dosáhnout volného páru
  • Dosahuje jednoduchosti naší aplikace
  • Umožňuje také změnit část kódu bez narušení dalších funkcí nebo kódu přítomného v programu

Podívejme se nyní na malý příklad, který ilustruje potřebu zapouzdření.

třída Student {int id Název řetězce} veřejná třída Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = '' s.name = null}}

Ve výše uvedeném příkladu obsahuje dvě proměnné instance jako modifikátor přístupu. Takže libovolná třída ve stejném balíčku může přiřadit a změnit hodnoty těchto proměnných vytvořením objektu této třídy. Nemáme tedy kontrolu nad hodnotami uloženými ve třídě Student jako proměnné. Abychom tento problém vyřešili, zapouzdříme třídu Student.

To bylo několik ukazatelů, které zobrazují potřebu zapouzdření. Nyní se podívejme na některé výhody zapouzdření.

Výhody zapouzdření

    • Skrývání dat: Zde uživatel nebude mít představu o vnitřní implementaci třídy. I uživatel si nebude vědom toho, jak třída ukládá hodnoty do proměnných. Bude si vědom pouze toho, že předáváme hodnoty metodě setter a proměnné se inicializují s touto hodnotou.
    • Zvýšená flexibilita: Zde můžeme proměnné třídy vytvořit jako jen pro čtení nebo jen pro zápis v závislosti na našem požadavku. V případě, že si přejete vytvořit proměnné jen pro čtení, musíme vynechat metody setteru, jako je setName (),setAge() atd. nebo pokud si přejeme vytvořit proměnné pouze pro zápis, musíme z výše uvedeného programu vynechat metody get jako getName (), getAge () atd.
    • Opakovaná použitelnost: Zlepšuje také opětovnou použitelnost a snadno se mění s novými požadavky.

Nyní, když jsme pochopili základy zapouzdření, pojďme se ponořit do posledního tématu tohoto článku a porozumět Zapouzdření podrobně pomocí příkladu v reálném čase.

Příklad zapouzdření v reálném čase

Uvažujme o televizním příkladu a pochopme, jak jsou vnitřní podrobnosti implementace skryty před vnější třídou.V podstatě v tomto příkladu skrýváme data vnitřního kódu, tj. Obvody z vnějšího světa krytem. Nyní v toho lze dosáhnout pomocí modifikátorů přístupu. Modifikátory přístupu nastavují přístup nebo úroveň třídy, proměnné konstruktorů atd. Jak vidíte v níže uvedeném kódu, k omezení úrovně přístupu třídy jsem použil modifikátor soukromého přístupu. Proměnné deklarované jako soukromé jsou přístupné pouze v rámci třídy Television.

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 channel) {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 třídy {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () televize. // Vrhá chybu, protože proměnná je soukromá a nelze k ní přistupovat mimo třídu}}

Ve výše uvedeném příkladu jsem deklaroval všechny proměnné jako soukromé a metody, konstruktory a třídu jako veřejné. Tady, konstruktory, metody lze přistupovat mimo třídu. Když tvořímobjekttřídy Television, může přistupovat k metodám a konstruktorům přítomným ve třídě, zatímco proměnné deklarované pomocí modifikátoru soukromého přístupu jsou skryté. Proto se při pokusu o přístup proměnná šířka ve výše uvedeném příkladu to hodíchyba. Takto jsou interní podrobnosti implementace skryty před ostatními třídami. Takto se dosahuje zapouzdření v Javě.

Tím se dostáváme na konec tohoto článku o „Zapouzdření v Javě“. Doufám, že jste to shledali informativní a pomohlo vám to zvýšit hodnotu vašich znalostí. Pokud se chcete o Javě dozvědět více, můžete se podívat na

Nyní, když jste pochopili „co je Zapouzdření v Javě“, podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu „Zapouzdření v Javě“ a my se vám ozveme co nejdříve.