Enkapsulacija u Java

U čemu je enkapsulacija Java?

Enkapsulacija u Java je mehanizam za omotavanje varijabli (podataka) i metoda (koda) zajedno kao jednu jedinicu. To je proces skrivanja informacija i zaštite podataka i ponašanja objekta. To je jedan od četiri važna OOP koncepta. Encapsulate klasu je lako testirati, tako da je također bolja za jedinično testiranje.

Kliknite ovdje ako video nije dostupan

Naučite enkapsulaciju u Java s Primjerom

Da biste detaljno razumjeli što je enkapsulacija, razmotrite sljedeću klasu bankovnog računa s metodama depozita i 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 
        } else
            account_balance = account_balance + a;
    }
}

Pretpostavimo da je haker uspio doći do koda vašeg bankovnog računa. Sada pokušava uplatiti iznos -100 na vaš račun na dva načina. 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.

Enkapsulacija u Java

Sad, pitanje je – Je li to moguće? Neka se istraži. 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 im ne može pristupiti.

Enkapsulacija u Java

Ako je podatkovni član privatan, to znači da mu se može pristupiti samo unutar iste klase. Nijedna vanjska klasa ne može pristupiti članu privatnih podataka ili varijabli druge klase. Dakle, u našem slučaju haker ne može položiti iznos -100 na vaš račun.

Enkapsulacija u Java

Pristup 2: Hakerov prvi pristup nije uspio položiti iznos. Zatim pokušava uplatiti iznos -100 koristeći metodu "depozita".

Enkapsulacija u Java

Ali implementacija metode ima provjeru negativnih vrijednosti. Dakle, drugi pristup također ne uspijeva.

Enkapsulacija u Java

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

Enkapsulacija u Java

Cijeli se kod može zamisliti kao kapsula, a komunicirati možete samo putem poruka. Otuda naziv enkapsulacija.

Skrivanje podataka u Java

Skrivanje podataka u Java skriva varijable klase od drugih klasa. Može mu se pristupiti samo putem metode njihove trenutne klase. Skriva detalje implementacije od korisnika. Ali više od skrivanja podataka, namijenjeno je boljem upravljanju ili grupiranju povezanih podataka. Da bi se postigao manji stupanj inkapsulacije u Java, možete koristiti modifikatore poput "zaštićeno" ili "javno". S enkapsulacijom, programeri mogu lako promijeniti jedan dio koda bez utjecaja na drugi.

Ubacivač i postavljač Java

Ubacivač i postavljač Java dvije su konvencionalne metode koje se koriste za dohvaćanje i ažuriranje vrijednosti varijable. Uglavnom se koriste za stvaranje, modificiranje, brisanje i pregled vrijednosti varijabli. Metoda postavljača koristi se za ažuriranje vrijednosti, a metoda dobivanja koristi se za čitanje ili dohvaćanje vrijednosti. Također su poznati kao akcesor i mutator.

Sljedeći kod je primjer getter i setter metoda:

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

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

Apstrakcija vs. Enkapsulacija

Često se enkapsulacija pogrešno shvaća Apstrakcija. Idemo učiti-

  • Enkapsulacija je više o tome "kako" postići funkcionalnost
  • Apstrakcija je više o tome "Što" klasa može učiniti.

Jednostavan primjer za razumijevanje ove razlike je mobilni telefon. Tamo gdje je složena logika u tiskanoj ploči kapsulirana u dodirnom ekranu, a sučelje je predviđeno za apstrahiranje.

Prednosti enkapsulacije u Java

  • Enkapsulacija je povezivanje podataka s pripadajućim funkcijama. Ovdje funkcionalnosti znače "metode", a podaci "varijable"
  • Dakle, varijable i metode držimo na jednom mjestu. To mjesto je "razred". Klasa je baza za enkapsulaciju.
  • Kontakt Java Enkapsulacija, možete sakriti (ograničiti pristup) kritičnim članovima podataka u vašem kodu, što poboljšava sigurnost
  • Kao što smo ranije spomenuli, ako je podatkovni član proglašen "privatnim", tada mu se može pristupiti samo unutar iste klase. Nijedna vanjska klasa ne može pristupiti podatkovnom članu (varijabli) druge klase.
  • Međutim, ako trebate pristupiti ovim varijablama, morate koristiti javni "dobavljač" i "postavljač" metode.