Kapszulázás Java OOP-kba példával

Tartalomjegyzék:

Anonim

Mi az a Java beágyazása?

A Java beágyazása egy olyan mechanizmus, amely a változókat (adatokat) és a módszereket (kódot) egyetlen egységként csomagolja össze. Ez az információrészletek elrejtésének, az adatok és az objektum viselkedésének védelme. Ez a négy fontos OOP-fogalom egyike. A kapszulázási osztályt könnyű tesztelni, ezért jobb az egység teszteléséhez is.

Ebben az oktatóanyagban megtanulja-

  • Mi az a Java beágyazása?
  • Tanulja meg a beágyazást egy példával
  • Adatok elrejtése Java-ban
  • Getter és Setter módszerek Java-ban
  • Absztrakció vs. kapszulázás
  • A Java beágyazásának előnyei

Kattintson ide, ha a videó nem érhető el

Tanulja meg a beágyazást egy példával

A kapszulázás részletességének megértéséhez vegye figyelembe a következő bankszámlaosztályt betétekkel és mutassa meg az egyenleg módszerét

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} elseaccount_balance = account_balance + a;}}

Tegyük fel, hogy egy hackernek sikerült hozzáférnie a bankszámla kódjához. Most kétféleképpen próbálja befizetni -100 összeget 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) próbál meg befizetni a bankszámlájára a kód manipulálásával.

Most a kérdés az - Lehetséges? Hadd nyomozzon.

Általában egy osztály változóját "privátnak" állítják be, az alábbiak szerint. Csak az osztályban meghatározott módszerekkel érhető el. Semmilyen más osztály vagy objektum nem férhet hozzájuk.

Ha egy adattag privát, az azt jelenti, hogy csak ugyanazon osztályon belül érhető el. Egyetlen külső osztály sem férhet hozzá privát adat taghoz vagy más osztály változójához.

Tehát esetünkben a hacker nem utalhat -100 összeget az Ön számlájára.

2. megközelítés : Hacker első megközelítésével nem sikerült befizetni az összeget. Ezután megpróbál -100 összeget befizetni "betét" módszerrel.

De a módszer megvalósításakor ellenőrizni kell a negatív értékeket. Tehát a második megközelítés sem sikerül.

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

A teljes kód elképzelhető egy kapszulának, és csak az üzeneteken keresztül kommunikálhat. Ezért a név beágyazása.

Adatok elrejtése Java-ban

Az adatok rejtése a Java-ban egy osztály változóit rejti más osztályok elől. Csak az aktuális osztályuk módszerével érhető el. Elrejti a megvalósítás részleteit a felhasználók elől. De nem csak az adatok elrejtése, hanem a kapcsolódó adatok jobb kezelése vagy csoportosítása.

A Java kisebb mértékű beágyazásának eléréséhez használhat olyan módosítókat, mint a "védett" vagy a "nyilvános". A beágyazás révén a fejlesztők a kód egyik részét könnyen megváltoztathatják, anélkül, hogy másokat érintenének.

Getter és Setter Java-ban

A Getter és a Setter a Java-ban két hagyományos módszer, amelyet egy változó értékeinek lekérésére és frissítésére használnak. Elsősorban a 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 metódust az értékek frissítésére, a getter metódust pedig az értékek leolvasására vagy visszakeresésére használják. Hozzáférőként és mutátorként is ismertek.

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

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

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

Absztrakció vs. kapszulázás

A kapszulázást gyakran félreértik az absztrakcióval. Tanuljunk-

  • A beágyazás inkább arról szól, hogy hogyan lehet elérni egy funkcionalitást
  • Az absztrakció inkább arról szól, hogy egy osztály mit tehet.

Egyszerű példa ennek a különbségnek a megértésére a mobiltelefon. Ahol az áramköri kártya komplex logikája érintőképernyőbe van foglalva, és az interfész biztosított annak elvonatkoztatásához.

A Java beágyazásának előnyei

  • A beágyazás megköti az adatokat a kapcsolódó funkciókkal. Itt a funkcionalitások "módszereket", az adatok pedig "változókat" jelentenek
  • Tehát a változót és a módszereket egy helyen tartjuk. Ez a hely "osztály". Az osztály a kapszulázás alapja.
  • A Java Encapsulation segítségével elrejtheti (korlátozhatja a hozzáférést) a kódban lévő kritikus adattagokra, ami javítja a biztonságot
  • Amint arról korábban tárgyaltunk, ha egy adattagot "privátnak" nyilvánítunk, akkor csak ugyanazon az osztályon belül lehet hozzáférni. Egyetlen külső osztály sem férhet hozzá más osztály adat tagjához (változójához).
  • Ha azonban hozzá kell férnie ezekhez a változókhoz, nyilvános "getter" és "setter" módszereket kell használnia.