Enkapsulacija znači kombiniranje podataka i funkcija koje rade na tim podacima u jednu jedinicu poput klase. U Objektno orijentirano programiranje pomaže da stvari budu organizirane i sigurne.
- Klasa može sakriti implementacijski dio i otkriti samo funkcionalnosti koje zahtijevaju druge klase. Stavljanjem podataka klase i metoda u privatne prikaze ili implementacije kasnije se mogu promijeniti bez utjecaja na kodove koji koriste ovu klasu.
- Pomaže u boljem održavanju, čitljivosti i upotrebljivosti. Također pomaže u održavanju integriteta podataka dopuštajući provjeru valjanosti i kontrolu nad vrijednostima dodijeljenim varijablama.
EnkapsulacijaImplementacija enkapsulacije u Javi
- Proglasi podatke privatnim: Sakrijte podatke razreda tako da im se ne može pristupiti izravno izvan razreda.
- Koristite getere i postavljače: Držite varijable privatnima i osigurajte javne getter i setter metode za kontrolirani pristup i sigurnu modifikaciju često uz provjeru valjanosti.
- Primijenite odgovarajuće modifikatore pristupa: Koristite privatno za skrivanje podataka i javno za metode koje omogućuju pristup.
class Programmer { private String name; // Getter method used to get the data public String getName() { return name; } // Setter method is used to set or modify the data public void setName(String name) { this.name = name; } } public class Geeks { public static void main(String[] args){ Programmer p = new Programmer(); p.setName('Geek'); System.out.println('Name=> ' + p.getName()); } }
Izlaz
Name=> Geek
Obrazloženje: U gornjem primjeru koristimo enkapsulaciju i getter ( getName) i postavljač ( setName) metoda koja se koristi za prikaz i izmjenu privatnih podataka. Ovaj mehanizam enkapsulacije štiti unutarnje stanje objekta Programmer i omogućuje bolju kontrolu i fleksibilnost u načinu na koji se atributu imena pristupa i mijenja.
strojopis prekidač
Prednosti enkapsulacije
Prednosti enkapsulacije navedene su u nastavku:
- Skrivanje podataka: Enkapsulacija ograničava izravan pristup varijablama klase štiteći osjetljive podatke od neovlaštenog pristupa.
- Poboljšana održivost: Promjene unutarnje implementacije mogu se napraviti bez utjecaja na vanjski kod koji koristi klasu.
- Poboljšana sigurnost: Enkapsulacija omogućuje provjeru valjanosti i kontrolu nad podacima sprječavajući postavljanje nevaljanih ili štetnih vrijednosti.
- Mogućnost ponovne upotrebe koda: Enkapsulirane klase mogu se ponovno koristiti u različitim programima bez izlaganja unutarnje logike.
- Bolja modularnost: Enkapsulacija promiče organizirani modularni kod držeći podatke i metode zajedno unutar klase.
Nedostaci enkapsulacije
Nedostaci enkapsulacije navedeni su u nastavku:
- Povećana složenost koda: Pisanje getter i setter metoda za svaku varijablu može učiniti kod duljim i malo složenijim.
- Dodatni troškovi izvedbe: Pristup podacima putem metoda umjesto izravnog može dovesti do manjeg troška performansi, posebno u aplikacijama kritičnim za performanse.
- Manja fleksibilnost u nekim slučajevima: Pretjerano ograničavanje pristupa članovima klase može ograničiti sposobnost drugih klasa da prošire ili učinkovito koriste klasu.