Java beágyazás

Ebben az oktatóanyagban példák segítségével megismerheti a Java beágyazását és az adatok elrejtését.

Java beágyazás

A beágyazás az objektum-orientált programozás egyik legfontosabb jellemzője. A beágyazás mezők és módszerek egyetlen osztályon belüli összevonására utal.

Megakadályozza, hogy a külső osztályok hozzáférjenek az osztály mezőihez és módszereihez és megváltoztassák azokat. Ez elősegíti az adatok elrejtését is .

1. példa: Java beágyazás

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

Kimenet

 Terület: 30

A fenti példában létrehoztunk egy Area nevű osztályt. Ennek az osztálynak a fő célja a terület kiszámítása.

Kiszámításához a területen, akkor kell két változó: hossza és szélessége és eljárás: getArea(). Ezért ezeket a mezőket és módszereket egyetlen osztályba csomagoltuk.

Itt a mezők és a metódusok más osztályokból is elérhetők. Ennélfogva ez nem adat rejtegetés .

Ez csak beágyazás . Csak hasonló kódokat tartunk együtt.

Megjegyzés : Az emberek a kapszulázást gyakran rejtegetésnek tekintik, de ez nem teljesen igaz.

A beágyazás a kapcsolódó mezők és módszerek együttes összekapcsolására utal. Ez felhasználható az adatok elrejtésének elérésére. A beágyazás önmagában nem rejtőzik el.

Miért beágyazás?

  • A Java-ban a kapszulázás segít a kapcsolódó mezők és módszerek összetartásában, ami kódunkat tisztábbá és könnyebben olvashatóvá teszi.
  • Segít az adatmezőink értékeinek ellenőrzésében. Például,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Itt az életkor változót készítjük privateés logikát alkalmazunk a setAge()módszeren belül . Az életkor nem lehet negatív.
  • A getter és setter módszerek csak olvasható vagy csak írási hozzáférést biztosítanak osztályterületeinkhez. Például,
     getName() // provides read-only access setName() // provides write-only access
  • Segít leválasztani a rendszer összetevőit. Például több csomagba foglalhatjuk a kódot.
    Ezeket a leválasztott komponenseket (csomag) függetlenül és egyidejűleg lehet fejleszteni, tesztelni és hibakeresni. És egy adott összetevő bármilyen változása nincs hatással más összetevőkre.
  • Az adatok elrejtését kapszulázással is elérhetjük. A fenti példában, ha a hosszúsági és szélességi változót privátra változtatjuk, akkor ezekhez a mezőkhöz való hozzáférés korlátozott.
    És rejtve vannak a külső osztályok elől. Ezt hívjuk adat rejtésnek .

Adatok elrejtése

Az adatok elrejtése a megvalósítási részletek elrejtésével korlátozhatja adattagjaink hozzáférését. A beágyazás lehetőséget nyújt az adatok elrejtésére is.

Hozzáférés-módosítókat használhatunk az adatok elrejtésének elérésére. Például,

2. példa: Adatok elrejtése a privát specifikátor használatával

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

Kimenet

 24 éves a korom

A fenti példában privateterepi korunk van. Mivel van private, az osztályon kívülről nem lehet hozzáférni.

Az életkor elérése érdekében publicmódszereket használtunk : getAge()és setAge(). Ezeket a módszereket getter és setter módszereknek nevezzük.

Az életkor priváttá tétele lehetővé tette számunkra, hogy korlátozzuk az osztályon kívüli illetéktelen hozzáférést. Ez az adatok elrejtése .

Ha megpróbáljuk elérni a korosztályt a Fő osztályból, hibát kapunk.

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

érdekes cikkek...