Kapszulázás be Java

Mi az a kapszulázás Java?

Kapszulázás be Java egy olyan mechanizmus, amely a változókat (adatokat) és a módszereket (kódot) egyetlen egységként fogja össze. Ez az információs részletek elrejtésének, valamint az objektum adatainak és viselkedésének védelmének folyamata. Ez egyike a négy fontos OOP-fogalomnak. A beágyazott osztály könnyen tesztelhető, így egységtesztelésre is jobb.

Kattints itt ha a videó nem érhető el

Tanulja meg az Encapsulation in Java példával

A beágyazás részletesebb megértéséhez tekintse át a következő bankszámlaosztályt a befizetési és egyenlegkimutatási módszerekkel

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        //code to show data 
    }

    public void deposit(int a) {
        if (a < 0) {
            //show error 
        } else
            account_balance = account_balance + a;
    }
}

Tegyük fel, hogy egy hackernek sikerült hozzáférnie bankszámlája kódjához. Most kétféleképpen próbál meg -100 összeget befizetni a számlájára. Lássuk az első módszerét vagy megközelítését.

1. megközelítés: Érvénytelen összeget (mondjuk -100-at) próbál befizetni a bankszámlájára a kód manipulálásával.

Kapszulázás be Java

A kérdés most az - Ez lehetséges? Hadd nyomozzon. Általában az osztályban lévő változók „privát”-ként vannak beállítva, az alábbiak szerint. Csak az osztályban meghatározott metódusokkal érhető el. Más osztály vagy objektum nem férhet hozzájuk.

Kapszulázás be Java

Ha egy adattag privát, az azt jelenti, hogy csak ugyanazon az osztályon belül érhető el. Egyetlen külső osztály sem férhet hozzá más osztály privát adattagjához vagy változójához. Így esetünkben a hacker nem tud -100 összeget befizetni a számlájára.

Kapszulázás be Java

2. megközelítés: A hacker első megközelítése nem tudta befizetni az összeget. Ezután megpróbál egy -100 összeget befizetni a „befizetés” módszerrel.

Kapszulázás be Java

De a metódus implementációja ellenőrzi a negatív értékeket. Tehát a második megközelítés is kudarcot vall.

Kapszulázás be Java

Így soha nem adja ki adatait külső félnek. Ez biztonságossá teszi az alkalmazást.

Kapszulázás be Java

A teljes kód egy kapszulának tekinthető, és csak az üzeneteken keresztül lehet kommunikálni. Innen a kapszulázás elnevezés.

Adatok elrejtése Java

Adatok elrejtése Java elrejti egy osztály változóit a többi osztály elől. Csak az aktuális osztály metódusán keresztül érhető el. Elrejti a megvalósítás részleteit a felhasználók elől. De több, mint az adatok elrejtése, hanem a kapcsolódó adatok jobb kezelésére vagy csoportosítására szolgál. A kisebb mértékű kapszulázódás elérése érdekében Java, használhat olyan módosítókat, mint a „védett” vagy „nyilvános”. A tokozással a fejlesztők könnyedén megváltoztathatják a kód egyik részét anélkül, hogy ez másokat érintene.

Getter és Setter be Java

Getter és Setter be Java két hagyományos módszer egy változó értékeinek lekérésére és frissítésére. Főleg változóértékek létrehozására, módosítására, törlésére és megtekintésére szolgálnak. A setter módszert az értékek frissítésére, a getter módszert pedig az értékek olvasására vagy lekérésére használják. Kiegészítőként és mutátorként is ismertek.

A következő kód egy példa a getter és setter metódusokra:

class Account{ 
private int account_number;
private int account_balance; 
    // getter method
	public int getBalance() {
        return this.account_balance;
    }
    // setter method
	public void setNumber(int num) {
        this.account_number = num;
    }
}

A fenti példában a getBalance() metódus egy getter metódus, amely beolvassa az account_balance változó értékét, és a setNumber() metódus egy setter metódus, amely beállítja vagy frissíti az account_number változó értékét.

Absztrakció vs. kapszulázás

A kapszulázást gyakran félreértik Absztrakció. Tanuljunk-

  • A beágyazás inkább arról szól, hogy „Hogyan” érhető el egy funkcionalitás
  • Az absztrakció inkább arról szól, hogy „Mit tud” egy osztály.

Egy egyszerű példa a különbség megértésére egy mobiltelefon. Ahol az áramköri kártya összetett logikája egy érintőképernyőbe van zárva, és az interfész absztrahálható.

A kapszulázás előnyei Java

  • A beágyazás az adatokat a kapcsolódó funkciókkal köti össze. Itt a funkcionalitások „módszereket”, az adatok pedig „változókat” jelentenek.
  • Tehát a változókat és a metódusokat egy helyen tartjuk. Ez a hely „osztály”. Az osztály a kapszulázás alapja.
  • A Java Beágyazás, elrejtheti (korlátozhatja a hozzáférést) a kritikus adattagok számára a kódban, ami javítja a biztonságot
  • Ahogy arról korábban szó volt, ha egy adattag „privát”-ként van deklarálva, akkor az csak ugyanazon az osztályon belül érhető el. Egyetlen külső osztály sem férhet hozzá egy másik osztály adattagjához (változójához).
  • Ha azonban hozzá kell férnie ezekhez a változókhoz, akkor használnia kell nyilvános „getter” és „beállító” mód.