encapsulation java
Сазнајте о енкапсулацији у Јави са примерима, зашто нам је потребна, повезаним методама гетера и постављача:
У овом упутству разговараћемо о другом концепту ООП - „Капсулација“. ООП има четири стуба, наиме, апстракцију, инкапсулацију, полиморфизам и наследство.
Иако се апстракција користи за излагање крајњим корисницима само релевантних детаља, инкапсулација се углавном бави сигурношћу података. Да би се осигурала сигурност података, енкапсулација штити чланове података од нежељеног приступа навођењем модификатора приступа и такође групише податке у једну целину.
=> Овде погледајте савршен водич за обуку за Јава.
Па како можемо дефинисати енкапсулацију у Јави?
најбољи софтвер за креирање дијаграма тока
Дефиниција инкапсулације
„Инкапсулација у Јави може се дефинисати као механизам помоћу којег се подаци и методе које раде на тим подацима умотавају у једну целину.“
Шта ћете научити:
Шта је инкапсулација у Јави
Користећи енкапсулацију такође можемо сакрити чланове података класе (променљиве) од осталих класа. Овим променљивима чланова података може се посредно приступити методама класе у којој су декларисане. Методама се заузврат приступа помоћу објекта те класе.
Дакле, оно што закључујемо из горње дефиниције је да смо сакрили променљиве члана података унутар класе и такође одредили модификаторе приступа тако да нису доступни осталим класама.
Стога је енкапсулација такође врста „скривања података“, мада ћемо касније у упутству видети да енкапсулација није исто што и скривање података.
Горња слика представља класу која је јединица за инкапсулацију која обједињује податке и методе који раде на тим подацима у једну јединицу.
Како се инкапсулација углавном бави подацима, она се алтернативно назива „енкапсулација података“.
Капсулацију можемо визуализовати као медицинску капсулу. Као што сви знамо, лек је затворен у медицинску капсулу. Слично томе, подаци и методе затворени су у једну јединицу у капсулацији.
Тако енкапсулација делује као заштитни штит око података и спречава неовлашћен приступ подацима спољног света. Другим речима, штити осетљиве податке наше апликације.
У Јави постоје два корака за примену енкапсулације. Следе кораци:
- Користите модификатор приступа „привате“ да бисте декларисали променљиве члана класе.
- Да бисмо приступили овим променљивим приватних чланова и променили њихове вредности, морамо обезбедити методе јавног гетера и сетера.
Применимо сада пример енкапсулације у Јави.
Пример енкапсулације Јава
//Student_Id and name bundled in a unit 'Student' => encapsulation class Student { private int Student_Id; private String name; //getters, setters for Student_Id and name fields. public int getId() { return Student_Id; } public void setId(int s_id) { this.Student_Id = s_id; } public String getname() { return name; } public void setname(String s_name) { this.name = s_name; } } class Main{ public static void main(String() args) { //create an object of Student class Student s=new Student(); //set fields values using setter methods s.setId (27); s.setname('Tom Lee'); //print values using getter methods System.out.println('Student Data:' + '
Student ID:' + s.getId() + ' Student Name:' + s.getname()); } }
Излаз:
У горе наведеном програму декларишемо класу која је јединица за инкапсулацију. Ова класа Студент је објединила податке (Студент_Ид и име) и методе за читање и постављање вредности за ове чланове у једну целину.
Обратите пажњу на модификаторе приступа повезане са пољима члана. Оба поља за чланове су приватна, тако да им није могуће приступити изван класе Студент.
Обезбеђујемо геттере (гетИд и гетнаме) за читање вредности ових поља и методе постављача (сетИд и сетнаме) за постављање вредности за ове методе. Ово је једини приступ који имају и то такође треба учинити помоћу објекта класе Студент.
Методи гетера и сетера
Да бисмо применили енкапсулацију у Јави, променљиве члана класе чинимо приватним. Сада ове приватне променљиве нису доступне ничем изван класе, укључујући објекат класе.
То значи да ако имамо класу АБЦ како следи.
класа АБЦ {
приватно инт доба;
најбољи софтвер за праћење температуре процесора
}
Креирајмо објекат класе АБЦ на следећи начин:
АБЦ абц = нови АБЦ ();
абц.аге = 21; // грешка компајлера
Дакле, у горњем коду, приступ приватној променљивој помоћу објекта класе резултираће грешком компајлера.
Да бисмо приступили приватним променљивим и прочитали њихове вредности и поставили неке нове вредности у њима, потребан нам је начин да то урадимо. Стога Јава пружа начин за приступ приватним променљивим помоћу геттер и сеттер метода.
Геттер и Сеттерс су јавне методе које можемо користити за креирање, модификовање, брисање или једноставно преглед вредности приватних променљивих.
Програм у наставку је пример метода Геттер и Сеттер.
//Account class - private data members bundled with getters and setters class Account { //private data members private long acc_no; private String name,email; private float amount; //public getter and setter methods for each data member public long getAcc_no() { return acc_no; } public void setAcc_no(long acc_no) { this.acc_no = acc_no; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public float getAmount() { return amount; } public void setAmount(float amount) { this.amount = amount; } } public class Main { public static void main(String() args) { //create instance of Account class Account myAcc=new Account(); //set values for data members through setter methods myAcc.setAcc_no(775492842L); myAcc.setName('SoftwareTestingHelp.com'); myAcc.setEmail('sth_account@sth.com'); myAcc.setAmount(25000f); //read data member values through getter methods System.out.println('Account No:' + myAcc.getAcc_no()+' '+'Account Name:' + myAcc.getName()+'
'+'Account holder email:' + myAcc.getEmail()+'
' + 'Amount in Account:' + myAcc.getAmount()); } }
Излаз:
Горњи програм има класу Аццоунт и има четири приватне променљиве повезане са налогом. Како су сви чланови података приватни, обезбедили смо методе гетера и постављача за сваку од ових променљивих.
шта је .7з датотека
У главној методи читамо и постављамо вредности за ове приватне променљиве помоћу јавних метода гетера и постављача којима се приступа преко објекта класе Аццоунт.
Сакривање података у Јави
Често користимо енкапсулацију и скривање података наизменично. Али оба нису иста. Јава енкапсулација се бави груписањем повезаних података у једну целину како би се осигурало боље управљање и сигурност података.
Сакривање података с друге стране ограничава приступ члану података скривањем детаља о имплементацији. Иако енкапсулација није баш скривање података, она нам пружа начин сакривања података. Сакривање података постиже се помоћу модификатора приступа.
Јава нуди четири модификатора приступа.
- јавно: Доступно свима.
- приватни: Доступно само унутар предавања.
- заштићен: Доступно пакету који садржи и поткласама.
- Уобичајено: Доступно у пакету.
Инкапсулација обједињује податке у једну јединицу, тако да их на неки начин сакрива. Такође, чини податке приватним и самим тим је неприступачан спољном свету. Да бисмо податке учинили приватним, користимо модификатор приступа привате који је концепт скривања података.
Истовремено, крајњем кориснику пружају се само релевантни детаљи без излагања детаља имплементације, што је дефиниција апстракције. Тако енкапсулацију можемо посматрати као комбинацију апстракције као и скривања података.
Зашто нам је потребна капсулација
Постоје различити разлози зашто је инкапсулација од суштинске важности у Јави:
- Инкапсулација нам омогућава да изменимо код или део кода без потребе да мењамо било које друге функције или код.
- Енкапсулација контролише начин приступа подацима.
- Код можемо модификовати на основу захтева помоћу енкапсулације.
- Инкапсулација чини наше апликације једноставнијим.
Често постављана питања
П # 1) Зашто се енкапсулација користи у Јави?
Одговор: Инкапсулација у Јави је углавном корисна за сакривање података. Или другим речима, да се одлучи о приступу датим подацима ко може да им приступи, а ко не.
П # 2) Шта је капсулација у ООП-у?
Одговор: Инкапсулација је један од важних стубова објектно оријентисаног програмског језика и бави се групирањем података и метода који раде на тим подацима у једну целину. На пример, класа у Јави је инкапсулирана структура. Инкапсулација се такође бави одлукама у вези са пружањем приступа подацима.
П # 3) Која је предност енкапсулације у Јави?
Одговор: Главна предност инкапсулације у Јави је скривање података. Користећи енкапсулацију можемо дозволити програмеру да одлучи о приступу подацима и методама које раде на тим подацима. На пример, ако желимо да одређени податак буде неприступачан никоме ван класе, тада те податке чинимо приватним.
П # 4) Шта је поступак инкапсулације?
Одговор: Инкапсулација је поступак преузимања података из једног формата или протокола (мрежно речено) и њихово превођење или преобликовање у други формат или протокол тако да су подаци доступни у апликацијама или мрежи и истовремено заштићени.
П # 5) Који је последњи корак у инкапсулацији података?
Одговор: Последњи корак у инкапсулацији је претварање корисничких података у еквивалентне податке. Затим се ови подаци мењају у сегменте који се даље трансформишу у пакете података. Пакети података смештени су у логички оквир који се може преносити амо-тамо у софтверском окружењу
Закључак
Овим је завршен наш водич о енкапсулацији у Јави. Инкапсулација је техника спајања променљивих чланова и метода које делују на ове чланове података у једну целину. Класа у Јави је класичан пример енкапсулације јер умотава податке и методе у једну целину.
Јава постиже имплементацију енкапсулације тако што чини све чланове података приватним, а затим обезбеђује јавне и геттер и сеттер методе како бисмо могли да читамо вредности приватних променљивих и постављамо нове вредности за ове променљиве.
=> Посетите овде за ексклузивну серију лекција за Јава тренинг.
Препоручено читање
- Водич за ЈАВА за почетнике: 100+ практичних Јава видео водича
- ТрееМап у Јави - Водич за примере Јава ТрееМап
- Јава двострука лекција са примерима програмирања
- Водич за Јава Флоат са примерима програмирања
- Јава Реверсе Стринг: Водич са примерима програмирања
- Јава Енум: Водич за набрајање Јава са примерима
- Јава Интегер и Јава БигИнтегер класа са примерима
- Јава Стринг садржи () Водич за методе са примерима