Š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" .