Kapsulacija v Java OOP s primerom

Kazalo:

Anonim

Kaj je enkapsulacija v Javi?

Inkapsulacija v Javi je mehanizem za združevanje spremenljivk (podatkov) in metod (koda) v eno samo enoto. Gre za postopek skrivanja podrobnosti informacij ter zaščite podatkov in vedenja predmeta. To je eden od štirih pomembnih konceptov OOP. Razred enkapsulacije je enostavno preizkusiti, zato je boljši tudi za enotno preskušanje.

V tej vadnici boste izvedeli-

  • Kaj je enkapsulacija v Javi?
  • Naučite se enkapsulacije s primerom
  • Skrivanje podatkov v Javi
  • Metode Getter in Setter v Javi
  • Abstrakcija vs kapsulacija
  • Prednosti enkapsulacije v Javi

Kliknite tukaj, če video ni dostopen

Naučite se enkapsulacije s primerom

Če želite podrobno razumeti, kaj je inkapsulacija, upoštevajte naslednji razred bančnih računov z metodami pologa in prikaza stanja

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;}}

Recimo, da je hekerju uspelo pridobiti dostop do kode vašega bančnega računa. Zdaj poskuša znesek -100 položiti na vaš račun na dva načina. Oglejmo si njegovo prvo metodo ali pristop.

Pristop 1: Na vaš bančni račun poskuša nakazati neveljaven znesek (recimo -100) z manipulacijo kode.

Zdaj je vprašanje - ali je to mogoče? Naj razišče.

Ponavadi so spremenljivke v razredu nastavljene kot "zasebne", kot je prikazano spodaj. Do njega lahko dostopate le z metodami, opredeljenimi v razredu. Do njih ne more dostopati noben drug razred ali predmet.

Če je podatkovni član zaseben, to pomeni, da je do njega mogoče dostopati samo v istem razredu. Noben zunanji razred ne more dostopati do člana zasebnega podatka ali spremenljivke drugega razreda.

Torej v našem primeru heker ne more položiti zneska -100 na vaš račun.

Pristop 2 : Prvi pristop Hackerja ni uspel položiti zneska. Nato poskuša položiti znesek -100 z uporabo metode "polog".

Toda izvedba metode ima preverjanje negativnih vrednosti. Torej tudi drugi pristop ne uspe.

Tako svojih podatkov nikoli ne izpostavljate zunanji stranki. Zaradi česar je vaša prijava varna.

Celotno kodo si lahko zamislite kot kapsulo, komunicirate pa lahko samo prek sporočil. Od tod tudi ime enkapsulacija.

Skrivanje podatkov v Javi

Skrivanje podatkov v Javi skriva spremenljivke razreda pred drugimi razredi. Do njega je mogoče dostopati samo po metodi trenutnega razreda. Podrobnosti o izvedbi skrije pred uporabniki. Toda bolj kot skrivanje podatkov je namenjeno boljšemu upravljanju ali združevanju povezanih podatkov.

Da bi dosegli manjšo stopnjo inkapsulacije v Javi, lahko uporabite modifikatorje, kot sta "zaščiten" ali "javni". Z enkapsulacijo lahko razvijalci enostavno spremenijo en del kode, ne da bi to vplivalo na drugega.

Getter in Setter v Javi

Getter in Setter v Javi sta dve običajni metodi, ki se uporabljata za pridobivanje in posodabljanje vrednosti spremenljivke. Uporabljajo se predvsem za ustvarjanje, spreminjanje, brisanje in ogled vrednosti spremenljivk. Za posodabljanje vrednosti se uporablja metoda setter, metoda getter pa za branje ali pridobivanje vrednosti. Znani so tudi kot pripomoček in mutator.

Naslednja koda je primer metod getter in setter:

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;}}

V zgornjem primeru je metoda getBalance () metoda getter, ki bere vrednost spremenljivke account_balance, metoda setNumber () pa je metoda setter, ki nastavi ali posodobi vrednost za spremenljivko account_number.

Abstrakcija vs kapsulacija

Inkapsulacija je z abstrakcijo pogosto napačno razumljena. Lets study-

  • Enkapsulacija bolj govori o tem, kako doseči funkcionalnost
  • Pri abstrakciji gre bolj za to, kaj lahko razred naredi.

Preprost primer za razumevanje te razlike je mobilni telefon. Kjer je zapletena logika na vezju vgrajena v zaslon na dotik in je vmesnik na voljo za njeno abstrakcijo.

Prednosti enkapsulacije v Javi

  • Inkapsulacija zavezuje podatke s pripadajočimi funkcijami. Tu funkcionalnosti pomenijo "metode", podatki pa "spremenljivke"
  • Torej spremenljivke in metode hranimo na enem mestu. To mesto je "razred". Razred je osnova za inkapsulacijo.
  • Z Java Encapsulation lahko v svoji kodi skrijete (omejite dostop) ključnim članom podatkov, kar izboljša varnost
  • Kot smo že omenili, če je podatkovni član razglašen za "zasebnega", je do njega mogoče dostopati samo v istem razredu. Noben zunanji razred ne more dostopati do podatkovnega člana (spremenljivke) drugega razreda.
  • Če pa želite dostopati do teh spremenljivk, morate uporabiti javni metodi "getter" in "setter" .