Zapouzdření Java

V tomto kurzu se dozvíte o zapouzdření a skrytí dat v Javě pomocí příkladů.

Zapouzdření Java

Zapouzdření je jednou z klíčových vlastností objektově orientovaného programování. Zapouzdření odkazuje na sdružování polí a metod uvnitř jedné třídy.

Zabraňuje vnějším třídám v přístupu a změně polí a metod třídy. To také pomáhá dosáhnout skrývání dat .

Příklad 1: Java Encapsulation

 class Area ( // fields to calculate area int length; int breadth; // constructor to initialize values Area(int length, int breadth) ( this.length = length; this.breadth = breadth; ) // method to calculate area public void getArea() ( int area = length * breadth; System.out.println("Area: " + area); ) ) class Main ( public static void main(String() args) ( // create object of Area // pass value of length and breadth Area rectangle = new Area(5, 6); rectangle.getArea(); ) )

Výstup

 Plocha: 30

Ve výše uvedeném příkladu jsme vytvořili třídu s názvem Oblast. Hlavním účelem této třídy je vypočítat plochu.

Pro výpočet plochy, potřebujeme dvě proměnné: křížem krážem a metody: getArea(). Proto jsme svázali tato pole a metody do jedné třídy.

Zde jsou pole a metody přístupné také z jiných tříd. Nejedná se tedy o skrytí dat .

Toto je pouze zapouzdření . Jen udržujeme podobné kódy pohromadě.

Poznámka : Lidé často považují zapouzdření za skrytí dat, ale není to tak úplně pravda.

Zapouzdření odkazuje na sdružování souvisejících polí a metod dohromady. To lze použít k dosažení skrytí dat. Zapouzdření samo o sobě není skrývání dat.

Proč zapouzdření?

  • V Javě nám zapouzdření pomáhá udržovat související pole a metody pohromadě, díky čemuž je náš kód čistší a snadno čitelný.
  • Pomáhá kontrolovat hodnoty našich datových polí. Například,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Zde vytváříme věkovou proměnnou privatea používáme logiku uvnitř setAge()metody. Věk nyní nemůže být záporný.
  • Metody getter a setter poskytují přístup pouze pro čtení nebo pro zápis k našim polím třídy. Například,
     getName() // provides read-only access setName() // provides write-only access
  • Pomáhá oddělit součásti systému. Například můžeme zapouzdřit kód do více svazků.
    Tyto oddělené komponenty (svazek) lze vyvíjet, testovat a ladit nezávisle a souběžně. Jakékoli změny v konkrétní komponentě nemají žádný vliv na ostatní komponenty.
  • Skrývání dat můžeme dosáhnout také pomocí zapouzdření. Pokud ve výše uvedeném příkladu změníme proměnnou délky a šířky na soukromou, je přístup k těmto polím omezen.
    A jsou skrytí před vnějšími třídami. Tomu se říká skrývání dat .

Skrývání dat

Skrývání dat je způsob, jak omezit přístup našich datových členů skrytím podrobností implementace. Zapouzdření také poskytuje způsob, jak skrýt data.

K dosažení skrytí dat můžeme použít modifikátory přístupu. Například,

Příklad 2: Skrytí dat pomocí soukromého specifikátoru

 class Person ( // private field private int age; // getter method public int getAge() ( return age; ) // setter method public void setAge(int age) ( this.age = age; ) ) class Main ( public static void main(String() args) ( // create an object of Person Person p1 = new Person(); // change age using setter p1.setAge(24); // access age using getter System.out.println("My age is " + p1.getAge()); ) )

Výstup

 Můj věk je 24

Ve výše uvedeném příkladu máme privatevěk pole. Protože je private, nelze k němu přistupovat zvenčí třídy.

Pro přístup k věku jsme použili publicmetody: getAge()a setAge(). Tyto metody se nazývají metody getter a setter.

Nastavit věk jako soukromý nám umožnilo omezit neoprávněný přístup mimo třídu. Toto je skrývání dat .

Pokud se pokusíme o přístup k věkovému poli z hlavní třídy, zobrazí se chyba.

 // error: age has private access in Person p1.age = 24;

Zajímavé články...