Inkapsulacija u Java OOP-ovima s primjerom

Sadržaj:

Anonim

Što je enkapsulacija u Javi?

Inkapsulacija u Javi je mehanizam za spajanje varijabli (podataka) i metoda (koda) u jednu cjelinu. To je postupak skrivanja podataka o informacijama i zaštite podataka i ponašanja objekta. To je jedan od četiri važna koncepta OOP. Klasu enkapsulacije lako je testirati, pa je također bolja za jedinstveno testiranje.

U ovom vodiču naučit ćete-

  • Što je enkapsulacija u Javi?
  • Naučite enkapsulaciju na primjeru
  • Sakrivanje podataka u Javi
  • Getter i Setter metode u Javi
  • Apstrakcija nasuprot kapsulaciji
  • Prednosti enkapsulacije u Javi

Kliknite ovdje ako videozapis nije dostupan

Naučite enkapsulaciju na primjeru

Da biste detaljno razumjeli što je inkapsulacija, razmotrite sljedeću klasu bankovnih računa s metodama pologa i pokazivanja 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;}}

Pretpostavimo da je haker uspio dobiti pristup kodu vašeg bankovnog računa. Sada na dva načina pokušava uplatiti iznos -100 na vaš račun. Pogledajmo njegovu prvu metodu ili pristup.

Pristup 1: Pokušava uplatiti nevažeći iznos (recimo -100) na vaš bankovni račun manipulirajući kodom.

Pitanje je - je li to moguće? Neka istraže.

Obično se varijabla u klasi postavlja kao "privatna" kao što je prikazano u nastavku. Može mu se pristupiti samo metodama definiranim u klasi. Nijedna druga klasa ili objekt ne može im pristupiti.

Ako je član podataka privatan, to znači da mu se može pristupiti samo u istoj klasi. Nijedna vanjska klasa ne može pristupiti članu privatnih podataka ili varijabli druge klase.

Dakle, u našem slučaju haker ne može uplatiti iznos -100 na vaš račun.

Pristup 2 : Hackerov prvi pristup nije uspio uplatiti iznos. Dalje, pokušava uplatiti iznos -100 metodom "pologa".

Ali implementacija metode ima provjeru negativnih vrijednosti. Dakle, i drugi pristup zakazuje.

Stoga svoje podatke nikada ne izlažete vanjskoj strani. Što vašu prijavu čini sigurnom.

Čitav kod možete zamisliti kao kapsulu, a možete komunicirati samo putem poruka. Otuda i naziv enkapsulacija.

Sakrivanje podataka u Javi

Sakrivanje podataka u Javi skriva varijable klase od drugih klasa. Može mu se pristupiti samo metodom njihove trenutne klase. Pokriva detalje o implementaciji od korisnika. Ali više od skrivanja podataka, namijenjeno je boljem upravljanju ili grupiranju povezanih podataka.

Da biste postigli manji stupanj enkapsulacije u Javi, možete koristiti modifikatore poput "zaštićen" ili "javni". Uz enkapsulaciju, programeri mogu lako promijeniti jedan dio koda bez utjecaja na drugi.

Getter i Setter u Javi

Getter i Setter u Javi dvije su uobičajene metode koje se koriste za dohvaćanje i ažuriranje vrijednosti varijable. Uglavnom se koriste za stvaranje, izmjenu, brisanje i prikaz vrijednosti varijabli. Metoda postavljanja koristi se za ažuriranje vrijednosti, a metoda dobivanja koristi se za čitanje ili dohvaćanje vrijednosti. Poznati su i kao pristupac i mutator.

Sljedeći je kôd primjer metoda dobivanja i postavljanja:

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

U gornjem primjeru, metoda getBalance () je metoda dobivača koja čita vrijednost varijable account_balance, a setNumber () metoda je metoda postavljača koja postavlja ili ažurira vrijednost za varijablu account_number.

Apstrakcija nasuprot kapsulaciji

Često se inkapsulacija pogrešno razumije s apstrakcijom. Idemo učiti-

  • Inkapsulacija je više o tome "Kako" postići funkcionalnost
  • Apstrakcija je više o tome "Što" razred može učiniti.

Jednostavan primjer za razumijevanje ove razlike je mobilni telefon. Gdje je složena logika u pločici ugrađena u zaslon osjetljiv na dodir, a sučelje je predviđeno da to apstrahira.

Prednosti enkapsulacije u Javi

  • Inkapsulacija obvezuje podatke sa srodnim funkcionalnostima. Ovdje funkcionalnosti znače "metode", a podaci "varijable"
  • Dakle, varijable i metode držimo na jednom mjestu. To mjesto je "klasa". Razred je osnova za inkapsulaciju.
  • Pomoću Java Encapsulation možete sakriti (ograničiti pristup) ključnim članovima podataka u kodu, što poboljšava sigurnost
  • Kao što smo ranije razgovarali, ako se član podataka proglasi "privatnim", može mu se pristupiti samo u istoj klasi. Nijedna vanjska klasa ne može pristupiti članu podataka (varijabli) druge klase.
  • Međutim, ako trebate pristupiti tim varijablama, morate koristiti javne metode "getter" i "setter" .