Енкапсулација значи комбиновање података и функција које раде на тим подацима у једну целину као што је класа. Ин Објектно оријентисано програмирање помаже да ствари буду организоване и безбедне.
- Класа може сакрити имплементациони део и открива само функционалности које захтевају друге класе. Прављењем података и метода класе приватне репрезентације или имплементације могу се касније променити без утицаја на кодове који користе ову класу.
- Помаже у бољем одржавању, читљивости и употребљивости. Такође помаже у одржавању интегритета података омогућавајући валидацију и контролу над вредностима додељеним променљивим.
ЕнкапсулацијаИмплементација инкапсулације у Јави
- Објави податке као приватне: Сакријте податке о класи тако да им се не може приступити директно изван класе.
- Користите геттере и сетере: Држите променљиве приватним и обезбедите јавне методе преузимања и постављања за контролисан приступ и безбедну модификацију често уз валидацију.
- Примените одговарајуће модификаторе приступа: Користите приватно за скривање података и јавно за методе које обезбеђују приступ.
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()); } }
Излаз
Name=> Geek
Објашњење: У горњем примеру користимо енкапсулацију и користимо геттер ( гетНаме) и сетер ( сетНаме) метод који се користи за приказивање и модификовање приватних података. Овај механизам енкапсулације штити унутрашње стање објекта Программер и омогућава бољу контролу и флексибилност у начину приступа и модификације атрибута наме.
Предности инкапсулације
Предности инкапсулације су наведене у наставку:
е-р модел дијаграм
- Скривање података: Енкапсулација ограничава директан приступ варијаблама класе штитећи осетљиве податке од неовлашћеног приступа.
- Побољшана могућност одржавања: Промене интерне имплементације се могу направити без утицаја на спољашњи код који користи класу.
- Побољшана безбедност: Енкапсулација омогућава проверу ваљаности и контролу података спречавајући постављање неважећих или штетних вредности.
- Поновна употреба кода: Енкапсулиране класе могу се поново користити у различитим програмима без излагања интерне логике.
- Боља модуларност: Енкапсулација промовише организовани модуларни код држећи податке и методе заједно у оквиру класе.
Недостаци инкапсулације
Недостаци инкапсулације су наведени у наставку:
- Повећана сложеност кода: Писање геттер и сеттер метода за сваку променљиву може учинити код дужим и мало сложенијим.
- Режим перформанси: Приступ подацима путем метода уместо директно може довести до мањег трошка перформанси, посебно у апликацијама које су критичне за перформансе.
- Мања флексибилност у неким случајевима: Претерано ограничавање приступа члановима класе може ограничити способност других класа да прошире или ефикасно користе класу.