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.
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.
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.
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.
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.
Így soha nem adja ki adatait külső félnek. Ez biztonságossá teszi az alkalmazást.
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.