Енкапсулација у Јави - Како савладати ООП-ове помоћу енкапсулације?



Овај чланак о Енкапсулацији у Јави помоћи ће вам да разумете основне концепте скривања детаља имплементације, заједно са разним једноставним примерима.

Објектно оријентисано програмирање или познатији као ООП један је од главних стубова Јаве који је искористио своју снагу и једноставност употребе. Да бисте постали професионални програмер Јава, морате да имате беспрекорну контролу над различитим као , Одвајање , Капсулација и полиморфизам. Кроз медиј овог чланка даћу вам потпун увид у један од најважнијих концепата ООП-а, тј. Инкапсулација у Јави и како се то постиже.

Испод су теме о којима ћу расправљати у овом чланку:





Такође можете проћи кроз овај снимак где теме можете детаљно разумети са примерима.



Увод у инкапсулацију

Инкапсулација се односи на заматање података у једној јединици. Механизам је тај који веже код и податке којима манипулише. Други начин размишљања о инкапсулацији је, то је заштитни штит који спречава приступ подацима ван кода изван овог штита. У овом су променљиве или подаци а је скривен од било које друге класе и може му се приступити само путем било које функције члана сопствене класе у којој су декларисани.

Узмимо сада пример медицинске капсуле, где је лек увек сигуран у капсули. Слично томе, путем инкапсулације, методе и променљиве класе су добро скривене и сигурне.



Инкапсулација -Енкапсулација у Јава-ЕдурекаИнкапсулација у Јави може се постићи:

  • Проглашавање променљивих класе приватним.
  • Пружање јавних метода постављача и гетера за модификовање и приказ вредности променљивих.

Сада, погледајмо код да бисмо стекли боље разумевање капсулације:

јавна класа Студент {име приватног низа публиц Стринг гетНаме () {ретурн име} јавна празнина сетНаме (име низа) {тхис.наме = наме}} Тест класе {публиц статиц воид маин (Стринг [] аргс) {Студент с = нови студент () с.сетНаме ('Харри Поттер') Систем.оут.принтлн (с.гетНаме ())}}

Као што видите у горњем коду, створио сам разред Студент који има приватни име . Даље, креирао сам гетера и постављача да бих добио и поставио име ученика. Уз помоћ ових метода, било која класа која жели да приступи променљивој имена мора то да уради користећи ове геттер и сеттер методе.

Погледајмо сада још један пример и дубље разумемо Енкапсулацију. У овом примеру, класа Цар има два поља - наме и топСпеед. Овде су оба декларисана као приватна, што значи да им се не може приступити директно изван класе. Имамо неке методе гетера и постављача попут гетНаме, сетНаме, сетТопСпеед итд., И они су проглашени јавним. Ове методе су изложене „аутсајдерима“ и могу се користити за промену и преузимање података из објекта Цар. Имамо једну методу за подешавање највеће брзине возила и две методе за добијање максималне брзине у МПХ или КМХт. Дакле, у основи је то што инкапсулација ради - скрива имплементацију и даје нам вредности које желимо. Сада, погледајмо код испод.

пакет Едурека јавна класа Цар {привате Стринг наме привате доубле топСпеед јавни аутомобил () {} публиц Стринг гетНаме () {ретурн наме} публиц воид сетНаме (Стринг наме) {тхис.наме = наме} публиц воид сетТопСпеед (доубле спеедМПХ) {топСпеед = спеедМПХ} јавни двоструки гетТопСпеедМПХ () {ретурн топСпеед} јавни двоструки гетТопСпеедКМХ () {ретурн топСпеед * 1.609344}}

Овде главни програм креира објекат Цар са датим именом и користи методу постављача да ускладишти највећу брзину за ову инстанцу. Радећи ово, лако можемо добити брзину у миљама миља у сату или КМХ не водећи рачуна о томе како се брзина претвара у класи аутомобила.

пакет Едурека јавна класа Пример {публиц статиц воид маин (Стринг аргс []) Цар цар = нев Цар () цар.сетНаме ('Мустанг ГТ 4,8-литарски В8') цар.сетТопСпеед (201) Систем.оут.принтлн (цар. гетНаме () + 'највећа брзина у милионима у сат је' + цар.гетТопСпеедМПХ ()) Систем.оут.принтлн (цар.гетНаме () + 'највећа брзина у КМХ је' + цар.гетТопСпеедКМХ ())

С.о, тако се енкапсулација може постићи у Јави. Идемо сада даље и видимо зашто нам је потребна енкапсулација.

Зашто нам је потребна енкапсулација у Јави?

Инкапсулација је од суштинске важности у Јави јер:

  • Она контролише начин приступа подацима
  • Модификује код на основу захтева
  • Помаже нам да постигнемо слободан пар
  • Постиже једноставност наше примене
  • Такође вам омогућава да промените део кода без ометања било којих других функција или кода присутних у програму

Сада, размотримо мали пример који илуструје потребу за инкапсулацијом.

класа Студент {инт ид Стринг наме} јавна класа Демо {публиц статиц воид маин (Стринг [] аргс) {Студент с = нев Студент () с.ид = 0 с.наме = '' с.наме = нулл}}

У горњем примеру садржи две променљиве инстанце као модификатор приступа. Дакле, било која класа у истом пакету може доделити и променити вредности тих променљивих стварањем објекта те класе. Дакле, ми немамо контролу над вредностима ускладиштеним у класи Студент као променљиве. Да бисмо решили овај проблем, инкапсулирамо класу Студент.

Дакле, ово је неколико упута које приказују потребу за капсулацијом. Сада, да видимо неке предности инкапсулације.

Предности инкапсулације

    • Сакривање података: Овде корисник неће имати појма о унутрашњој имплементацији класе. Чак ни корисник неће бити свестан како класа чува вредности у променљивим. Биће само свестан да прослеђујемо вредности методи постављача и да се променљиве иницијализују том вредношћу.
    • Повећана флексибилност: Овде можемо направити променљиве класе само за читање или само за писање, у зависности од наших захтева. У случају да променљиве желите учинити само за читање, морамо изоставити методе постављања попут сетНаме (),сетАге() итд. или ако желимо да променљиве направимо само за писање, онда морамо изоставити методе гет попут гетНаме (), гетАге () итд. из горњег програма.
    • Могућност поновне употребе: Такође побољшава поновну употребљивост и лако се мења са новим захтевима.

Сад кад смо разумели основе инкапсулације, заронимо у последњу тему овог чланка и детаљно разумемо енкапсулацију помоћу примера у стварном времену.

Пример капсулације у реалном времену

Размотримо пример са телевизије и схватимо како су детаљи унутрашње имплементације скривени од спољне класе.У основи, у овом примеру сакривамо податке о унутрашњем коду, тј. Склопове из спољног света уз поклопац. Сада у , то се може постићи помоћу модификатора приступа. Модификатори приступа постављају приступ или ниво класе, променљиве конструктора итд. Као што видите у доњем коду, користио сам модификатор приватног приступа да ограничим ниво приступа класи. Променљиве декларисане као приватне су доступне само у оквиру класе Телевисион.

пролећни мвц водич за почетнике
јавна класа Телевизија {приватна двострука ширина приватна двострука висина приватна двострука величина екрана привате инт макВолуме принт инт волуме привате боолеан повер јавна телевизија (двострука ширина, двострука висина, двоструки СцреенСизе) {тхис.видтх тхис.хеигхт тхис.сцреенСизе = СцреенСизе} јавни двоструки цханнелТунинг (инт цханнел) {свитцх (цханнел) {цасе1: ретурн 34.56 цасе2: ретурн 54.89 цасе3: ретурн 73.89 цасе1: ретурн 94.98} ретурн 0} публиц инт редуцеВолуме () {иф (0волуме) волуме ++ ретурн волуме}} тест класе {публиц статиц воид маин (Стринг аргс []) {Телевизија т = нова телевизија (11,5,7,9) т.поверСвитцх () т.цханнелТунинг (2) т.децреасеВолуме () т.инцреасеВолуме () телевизија. // Баца грешку јер је променљива приватна и не може јој се приступити изван класе}}

У горњем примеру, све променљиве сам прогласио приватним, а методе, конструкторе и класу јавним. Овде се конструкторима и методама може приступити изван класе. Кад стварамобјекаткласе Телевисион, може приступити методама и конструкторима присутним у класи, док су променљиве декларисане са модификатором приватног приступа скривене. Зато када покушате да приступите променљива ширина у горњем примеру бацагрешка. Тако се детаљи унутрашње имплементације крију од осталих класа. Тако се у Јава-у постиже енкапсулација.

Ово нас доводи до краја овог чланка о „Капсулацији у Јави“. Надам се да вам је било информативно и да је помогло у додавању вредности вашем знању. Ако желите да сазнате више о Јави, можете се обратити

Сада када сте разумели „шта је Енкапсулација у Јави“, погледајте Едурека, поуздана компанија за учење на мрежи са мрежом од више од 250.000 задовољних ученика раширених широм света. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА дизајниран је за студенте и професионалце који желе да буду Јава програмер. Курс је дизајниран да вам пружи почетну предност у Јава програмирању и обучи вас како за основне тако и за напредне Јава концепте, заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помињете у одељку за коментаре овог блога „Енкапсулација у Јави“ и јавићемо вам се што је пре могуће.