Шта је енкапсулација у Јави?
Инкапсулација у Јави је механизам за спајање променљивих (података) и метода (кода) у једну целину. То је поступак сакривања детаља информација и заштите података и понашања објекта. То је један од четири важна концепта ООП. Класу енкапсулације лако је тестирати, па је такође боља за јединствено тестирање.
У овом упутству ћете научити-
- Шта је енкапсулација у Јави?
- Научите енкапсулацију на примеру
- Сакривање података у Јави
- Геттер и Сеттер методе у Јави
- Апстракција насупрот капсулирању
- Предности енкапсулације у Јави
Кликните овде ако видео снимку није доступан
Научите енкапсулацију на примеру
Да бисте детаљно разумели шта је инкапсулација, узмите у обзир следећу класу банковних рачуна са методама депозита и приказа стања
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;}}
Претпоставимо да је хакер успео да добије приступ коду вашег банковног рачуна. Сада покушава да уплати износ -100 на ваш рачун на два начина. Погледајмо његову прву методу или приступ.
Приступ 1: Покушава да уплати неважећи износ (рецимо -100) на ваш банковни рачун манипулишући кодом.
Питање је - да ли је то могуће? Нека истраже.
Обично се променљива у класи поставља као „приватна“, као што је приказано доле. Може му се приступити само методама дефинисаним у класи. Ниједна друга класа или објекат им не може приступити.
Ако је члан података приватан, то значи да му се може приступити само у истој класи. Ниједна спољна класа не може приступити члану приватних података или променљивој друге класе.
Дакле, у нашем случају хакер не може да уплати износ -100 на ваш рачун.
Приступ 2 : Хакеров први приступ није успео да положи износ. Даље, покушава да уплати износ -100 методом „депозита“.
Али примена методе има проверу негативних вредности. Дакле, други приступ такође заказује.
Стога своје податке никада не излажете спољној страни. Што вашу апликацију чини сигурном.
Читав код се може замислити као капсула, а можете комуницирати само путем порука. Отуда и назив енкапсулација.
Сакривање података у Јави
Сакривање података у Јави скрива променљиве класе од других класа. Може му се приступити само методом њихове тренутне класе. Од корисника сакрива детаље о примени. Али више од скривања података, оно је намењено бољем управљању или групирању повезаних података.
Да бисте постигли мањи степен енкапсулације у Јави, можете користити модификаторе попут „заштићен“ или „јавни“. Са енкапсулацијом, програмери могу лако да промене један део кода без утицаја на други.
Геттер и Сеттер у Јави
Геттер и Сеттер у Јави су две конвенционалне методе које се користе за преузимање и ажурирање вредности променљиве. Углавном се користе за креирање, модификовање, брисање и преглед вредности променљивих. Метода сетера користи се за ажурирање вредности, а метода гетера за читање или преузимање вредности. Познати су и као приступац и мутатор.
Следећи код је пример метода гетера и постављача:
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;}}
У горњем примеру, гетБаланце () метода је геттер метода која чита вредност променљиве аццоунт_баланце, а сетНумбер () метода је сеттер метода која поставља или ажурира вредност за променљиву аццоунт_нумбер.
Апстракција насупрот капсулирању
Често се инкапсулација погрешно схвата са апстракцијом. Летс студи-
- Инкапсулација је више о томе „Како“ како би се постигла функционалност
- Апстракција је више о томе „шта“ час може да уради.
Једноставан пример за разумевање ове разлике је мобилни телефон. Тамо где је сложена логика у плочици уграђена у додирни екран, а интерфејс је предвиђен да је апстрахује.
Предности енкапсулације у Јави
- Инкапсулација обавезује податке са сродним функционалностима. Овде функционалности значе „методе“, а подаци „променљиве“
- Дакле, варијабле и методе држимо на једном месту. То место је „класа“. Класа је основа за инкапсулацију.
- Помоћу Јава Енцапсулатион можете сакрити (ограничити приступ) кључним члановима података у коду, што побољшава сигурност
- Као што смо раније разговарали, ако се члан података прогласи „приватним“, тада му се може приступити само у истој класи. Ниједна спољна класа не може приступити члану података (променљивој) друге класе.
- Међутим, ако вам је потребан приступ овим променљивим, морате да користите јавне методе „геттер“ и „сеттер“ .