Јава апстракција - Овладавање ООП-ом са апстракцијом на Јави



Овај чланак о Јава Абстракцији помоћи ће вам да разумете употребу класе Абстрацт и интерфејса и како то постићи помоћу Абстракције.

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

У овом чланку ћу обрађивати доле наведене теме:





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



Апстракција у ООП

Када генерално говоримо о апстракцији, софтверски језик је пример апстракције. Узмимо пример и напишимо изјаву као-

к = и + з

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



Шта је Јава апстракција?

Апстракција није ништа друго до квалитетно бављење идејама, а не догађајима. У основи се бави сакривањем унутрашњих детаља и приказивањем основних ствари кориснику.

Позивање - Јава апстракција -Едурека

Ако погледате горњи гиф, можете видети када добијете позив, добијамо опцију да га или подигнете или једноставно одбијете. Али у стварности постоји пуно кода који ради у позадини. Дакле, овде не знате интерну обраду како се генерише позив, у томе је лепота апстракције. Апстракцију можете постићи на два начина:

а) Апстрактни час

б) Интерфејс

Да разумемо ове концепте детаљније.

Апстрактни час

Класа сажетак садржи кључну реч „сажетак“. Али шта тачно значи? Ако класу учините апстрактном, она се не може инстанцирати, тј. Не можете креирати објекат апстрактне класе. Такође, апстрактна класа може садржати како апстрактне, тако и конкретне методе.

Белешка: Апстракцијом можете постићи 0-100% апстракције користећи апстрактну класу.

Да бисте користили апстрактну класу, морате је наследити од основне класе. Овде морате да дате примене апстрактних метода, у супротном ће то постати апстрактна класа.

Погледајмо синтаксу апстрактне класе:

Апстрактна класа Спорт {// апстрактна класа спорт Абстрацт воид јумп () // апстрактна метода}

Приступ

Интерфејс у ​​Јави је скуп апстрактних метода и статичких константи. Као што можда знате у интерфејсу, свака метода је јавна и апстрактна, али не садржи ниједан конструктор. Заједно са апстракцијом, интерфејс такође помаже у постизању вишеструког наслеђивања у Јави.
Белешка: Помоћу интерфејса можете постићи 100% апстракцију.

У основи, Интерфаце је група повезаних метода са празним телима. Хајде да разумемо интерфејсе узимајући пример интерфејса Схапе ’са сродним методама.

облик јавног интерфејса {публиц воид драв () публиц доубле гетАреа ()}

Ове методе морају бити присутне у сваком „облику“, зар не? Али њихов рад ће бити другачији.

Претпоставимо да желите да нацртате облик, рецимо круг, квадрат, правоугаоник итд. Већ знате, сваки облик има своје димензије попут радијуса, висине и ширине. Рецимо да желим нацртати круг и израчунати његову површину. С обзиром на исто, створио сам две методе у горњем коду, тј. Драв () и гетАреа (). Сада, користећи ове методе, могу да нацртам било који облик и израчунам површину применом њеног интерфејса.

Погледајмо сада функционалност како можете да примените овај интерфејс.
Да бисте применили овај интерфејс, назив ваше класе би се променио у било који облик, рецимо „Круг“. Дакле, да бих применио интерфејс класе, користићу кључну реч ‘Имплементирај’:

јавна класа Цирцле имплементира Схапе {привате доубле радиус публиц Цирцле (доубле р) {тхис.радиус = р} воид драв () {Систем.оут.принтлн ('Дравинг Цирцле')} публиц доубле гетАреа () {ретурн Матх.ПИ * тхис.радиус * тхис.радиус} публиц доубле гетРадиус () {ретурн тхис.радиус}} Тест јавне класе {публиц статиц воид маин (Стринг аргс []) {Схапе ц = нев Цирцле (8) ц.драв () Систем. оут.принтлн ('Ареа =' + ц.гетАреа ())}}

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

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

Претпоставимо да имамо Спорт као интерфејс. Овде ће имплементацију обезбедити часови под називом „Бадминтон“ и „Фудбал“. У стварном сценарију крајњи корисник неће бити свестан класе имплементације. Дакле, објекат класе имплементације може се обезбедити фабричком методом. Фабричка метода се може користити за креирање објекта класе имплементације на основу неког критеријума.
Имплементирајмо исто и креирајмо интерфејс под називом Спорт.јава.

јавни интерфејс Спорт {воид плаи ()} // Сада ћемо створити класу под називом 'Бадминтон' публиц цласс Бадминтон имплементира Спорт {@Оверриде публиц воид плаи () {Систем.оут.принтлн ('Плаиинг бадминтон')}} // Даље, креирајмо нашу последњу класу „Фудбал“ јавне класе Фудбал имплементира Спорт {@Оверриде публиц воид плаи () {Систем.оут.принтлн ('Плаиинг фоотбалл')}

Последњи корак је стварање главне класе под називом „СпортИнтерфаце“.

јавни СпортИнтерфаце {публиц статиц воид маин (Стринг аргс []) {// ваш код овде}}

Када извршите горњи програм, излаз ће бити као што је приказано доле:

Играње бадминтона ------------------- Играње фудбала

Надам се да сте јасни са интерфејсом и како можете да постигнете апстракцију помоћу њега. Закључимо сада овај чланак упоређивањем Апстракције и Капсулације.

Апстракција вс енкапсулација

Одвајање Капсулација
Решава проблем на нивоу дизајнаРешава проблем на нивоу примене
Користи се за скривање нежељених података и давање релевантних резултатаИнкапсулација подразумева скривање кода и података у једну целину ради заштите података од спољног света
Спољни изглед - користи се у погледу дизајнаУнутрашњи изглед - користи се у смислу примене

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

како се користи анаконда за питон

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

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