Java zapuzdrenie

V tomto výučbe sa pomocou príkladov dozviete o zapuzdrovaní a skrývaní údajov v prostredí Java.

Zapuzdrenie Java

Zapuzdrenie je jednou z kľúčových vlastností objektovo orientovaného programovania. Zapuzdrenie označuje spojenie polí a metód v jednej triede.

Bráni vonkajším triedam v prístupe a zmene polí a metód triedy. To tiež pomáha dosiahnuť skrytie údajov .

Príklad 1: Java zapuzdrenie

 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ýkon

 Plocha: 30

Vo vyššie uvedenom príklade sme vytvorili triedu s názvom Area. Hlavným účelom tejto triedy je výpočet plochy.

Pre výpočet plochy, potrebujeme dve premenné: krížom krážom a metódy: getArea(). Preto sme tieto polia a metódy spojili do jednej triedy.

Tu sú polia a metódy prístupné aj z iných tried. Nejde teda o skrývanie údajov .

Toto je iba zapuzdrenie . Podobné kódy len držíme pohromade.

Poznámka : Ľudia často považujú zapuzdrenie za skrytie údajov, ale nie je to tak úplne pravda.

Zapuzdrenie znamená spojenie podobných polí a metód dohromady. To možno použiť na dosiahnutie skrytia údajov. Samotné zapuzdrenie neskrýva údaje.

Prečo zapuzdrenie?

  • V Jave nám zapuzdrenie pomáha udržiavať súvisiace polia a metódy pohromade, čo robí náš kód čistejším a ľahšie čitateľným.
  • Pomáha kontrolovať hodnoty našich dátových polí. Napríklad,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Tu robíme vekovú premennú privatea uplatňujeme logiku vo vnútri setAge()metódy. Vek teraz nemôže byť negatívny.
  • Metódy getter a setter poskytujú prístup iba na čítanie alebo iba na zápis k našim poliam triedy. Napríklad,
     getName() // provides read-only access setName() // provides write-only access
  • Pomáha oddeliť komponenty systému. Napríklad môžeme kód zapuzdriť do viacerých zväzkov.
    Tieto oddelené komponenty (zväzok) je možné vyvíjať, testovať a ladiť nezávisle a súčasne. Akékoľvek zmeny v konkrétnom komponente nemajú žiadny vplyv na ostatné komponenty.
  • Skrývanie údajov môžeme dosiahnuť aj pomocou zapuzdrenia. Ak vo vyššie uvedenom príklade zmeníme premennú dĺžky a šírky na súkromnú, potom je prístup k týmto poliam obmedzený.
    A sú skryté pred vonkajšími triedami. Toto sa nazýva skrývanie údajov .

Skrývanie údajov

Skrývanie údajov je spôsob obmedzovania prístupu našich dátových členov skrytím podrobností implementácie. Zapuzdrenie tiež poskytuje spôsob skrývania údajov.

Na dosiahnutie skrytia údajov môžeme použiť modifikátory prístupu. Napríklad,

Príklad 2: Skrývanie údajov pomocou súkromného špecifikátora

 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ýkon

 Môj vek je 24 rokov

Vo vyššie uvedenom príklade máme privatepoľný vek. Pretože je private, nie je k nim prístup mimo triedy.

Na prístup k veku sme použili publicmetódy: getAge()a setAge(). Tieto metódy sa nazývajú metódy getra a setra.

Nastavenie veku na súkromné ​​nám umožnilo obmedziť neoprávnený prístup mimo triedy. Toto je skrývanie údajov .

Ak sa pokúsime získať prístup k vekovému poľu z hlavnej triedy, zobrazí sa chyba.

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

Zaujímavé články...