top 30 oops interview questions
Овај туторијал нуди комплетан сет често постављаних питања и одговора на питања о објектно оријентисаном програмирању (ООП):
Развој софтвера има око 70 и више година историје у којој су изумљени разни језици попут ФОРТРАН, Пасцал, Ц, Ц ++. Постојала је серија изјава које делују као команде дате хардверу за извођење неких основних математичких прорачуна, чинећи процедуралне језике за дизајнирање различитих софтверских апликација.
Изумом Интернета, сигурни, стабилни и независни од платформе и робусни језици били су потребни за дизајнирање сложених апликација.
Објектно оријентисано програмирање је независно од платформе, преносиво, осигурано и опремљено разним концептима попут енкапсулације, апстракције, наслеђивања и полиморфизма.
Предности ООПС-а су поновна употребљивост, проширивост и модуларност који побољшавају продуктивност, једноставнији за одржавање због модуларности, бржи и нижи трошкови развоја због поновне употребе кода, производе сигурне и висококвалитетне апликације.
Шта ћете научити:
Основни концепти објектно оријентисаног програмирања
Објектно оријентисано програмирање укључује интелектуалне објекте, податке и понашање повезано с њима како би се донела решења за пословне проблеме. У програмском језику Јава, за дизајнирање решења за пословне проблеме, програмери примењују концепте као што су апстракција, инкапсулација, наслеђивање и полиморфизам.
Разни концепти попут Одвајање која занемарује небитне детаље, Капсулација који се фокусира на минимум који је потребан без откривања било каквих сложености у вези са унутрашњим функционалностима, Наслеђивање да наследи својства родитељске класе или имплементира више наслеђа користећи интерфејс и Полиморфизам што проширује својства преоптерећења методе (статички полиморфизам) и премошћавања методе (динамички полиморфизам).
Најчешћа питања о интервјуу за ООПС
П # 1) Објасните укратко шта подразумевате под објектно оријентисаним програмирањем на Јави?
Одговор: ООП се бави објектима, попут стварних ентитета као што су оловка, мобилни, банковни рачун који има стање (подаци) и понашање (методе).
Уз помоћ приступа, осигуравачи добијају приступ овим подацима и методама. Концепти енкапсулације и апстракције нуде скривање података и приступ основним стварима, наслеђивању и полиморфизму помажу у поновној употреби и преоптерећењу / замени метода и конструктора, чинећи апликације независним од платформе, заштићеним и робусним коришћењем језика као што је Јава.
П # 2) Објасните Да ли је Јава чисти објектно оријентисани језик?
Одговор: Јава није потпуно чисти објектно оријентисани програмски језик. Разлози су следећи:
- Јава подржава и користи примитивне типове података као што су инт, флоат, доубле, цхар итд.
- Примитивни типови података чувају се као променљиве или у стеку уместо гомиле.
- У Јави статичке методе могу приступити статичким променљивим без употребе објекта, супротно објектно оријентисаним концептима.
П # 3) Опишите класу и објекат у Јави?
Одговор: Класа и објект играју интегралну улогу у објектно оријентисаним програмским језицима као што је Јава.
- Класа је прототип или шаблон који има стање и понашање које подржава објекат и користи се у стварању објеката.
- Објекат је инстанца класе, на пример, Човек је класа са државом која има кичмени систем, мозак, боју и висину и понаша се попут цанТхинк (), аблеТоСпеак () итд.
П # 4) Које су разлике између класе и објеката у Јави?
Одговор: Следи неколико главних разлика између класе и објеката у Јави:
Класа | Предмет |
---|---|
Примери наставе из стварног живота могу бити а • Рецепт за припрему хране. • Плави отисци за аутомобилски мотор. | Примери предмета из стварног живота могу бити • Храна припремљена по рецепту. • Мотор израђен према плавим отисцима. |
Класа је логичан ентитет | Објекат је физички ентитет |
Класа је образац из којег се може креирати објекат | Објект је инстанца класе |
Класа је прототип који има стање и понашање сличних објеката | Предмети су ентитети који постоје у стварном животу као што су мобилни уређаји, миш или интелектуални објекти попут банковног рачуна |
Предмет се декларише кључном речју класе, попут класе Цласснаме {} | Објекат се креира помоћу нове кључне речи као Емплоиее емп = нев Емплоиее (); |
Током креирања класе не долази до алокације меморије | Током стварања објекта, меморија се додељује објекту |
Постоји само једносмерна класа која се дефинише помоћу кључне речи цласс | Стварање објеката може се извршити на више начина, на пример коришћењем нове кључне речи, методе невИнстанце (), клонирања () и фабричке методе. |
П # 5) Зашто је потребна објектно оријентисано програмирање?
Одговор: ООП пружа спецификаторе приступа и могућности сакривања података за већу сигурност и контролу приступа подацима, преоптерећење се може постићи преоптерећењем функција и оператора, поновна употреба кода је могућа јер се већ створени објекти у једном програму могу користити у другим програмима.
Прекомерност података, одржавање кода, сигурност података и предност концепата попут енкапсулације, апстракције, полиморфизма и наслеђивања у објектно оријентисаном програмирању пружају предност у односу на раније коришћене процедуралне програмске језике.
П # 6) Објасните апстракцију примером у стварном времену.
Одговор: Апстракција у објектно оријентисаном програмирању значи скривање сложених унутрашњих елемената, али излагање само битних карактеристика и понашања с обзиром на контекст. У стварном животу пример апстракције је колица на мрежи, рецимо на било којој веб локацији за е-трговину. Једном када одаберете производ и наручите књигу, само вас занима да свој производ добијете на време.
Како се ствари догађају није оно што вас занима, јер је сложено и скривено. Ово је познато као апстракција. Слично томе, узмимо пример банкомата, сложеност унутрашњих података о начину на који се новац терети са вашег рачуна остаје скривена, а готовину примате путем мреже. Слично за аутомобиле, начин на који бензин чини мотор мотором изузетно је сложен.
П # 7) Дајте неколико примера у стварном времену и објасните наслеђивање.
Одговор: Наслеђивање значи да једна класа (поткласа) наслеђивањем стиче својства друге класе (супер класа). У стварном животу узмите пример наслеђивања нормалног бицикла где је то родитељска класа, а спортски бицикл може бити дечија класа, где је спортски бицикл наследио својства и понашање ротирајућих точкова са педалама преко зупчаника као код нормалног бицикла.
П # 8) Како полиморфизам делује на Јави, објасните примерима из стварног живота?
Одговор: Полиморфизам је способност вишеструког облика или способност методе да ради различите ствари. У стварном животу иста особа која обавља различите дужности понаша се другачије. У канцеларији је запослен, код куће је отац, током или током школовања или током школовања је студент, викендом игра крикет и игра на игралишту.
ц ++ како направити макефиле
У Јави постоје две врсте полиморфизма
- Цомпиле-тиме полиморфизам: То се постиже преоптерећењем метода или преоптерећењем оператера.
- Полиморфизам током извођења: То се постиже заменом метода.
П # 9) Колико је врста наслеђа присутно?
Одговор: У наставку су наведени различити типови наслеђа:
- Једно наслеђе: Класа једног детета наслеђује карактеристике класе самохрани родитељ.
- Вишеструко наслеђивање: Једна класа наслеђује функције више од једне основне класе и није подржана у Јави, али класа може да имплементира више интерфејса.
- Наслеђивање на више нивоа: Класа може наследити изведену класу чинећи је основном класом за нову класу, на пример, дете наслеђује понашање од оца, а отац је наследио особине од оца.
- Хијерархијско наслеђивање: Једну класу наслеђује више подкласа.
- Хибридно наслеђивање: Ово је комбинација једног и више наслеђа.
П # 10) Шта је интерфејс?
Одговор: Интерфејс је сличан класи у којој може имати методе и променљиве, али његове методе немају тело, већ само потпис познат као апстрактна метода. Променљиве декларисане у интерфејсу могу подразумевано имати јавне, статичке и финалне. Интерфејс се користи у Јави за апстракцију и вишеструко наслеђивање, где класа може да имплементира више интерфејса.
П # 11) Можете ли објаснити предности апстракције и наслеђивања?
Одговор: Апстракција кориснику открива само битне детаље и игнорише или скрива небитне или сложене детаље. Другим речима, апстракција података излаже интерфејс и скрива детаље имплементације. Јава изводи апстракцију уз помоћ интерфејса и апстрактних класа. Предност апстракције је у томе што поједностављује гледање ствари смањењем или скривањем сложености примене.
Дуплирање кода се избегава и повећава поновну употребу кода. Кориснику се откривају само битни детаљи и побољшава сигурност апликације.
Наслеђивање је место где наследна класа наслеђује функционалност (понашање) родитељске класе. Не треба да пишемо код једном написан у родитељској класи ради поновне функционалности у подређеној класи и тако олакшавамо поновну употребу кода. Шифра такође постаје читљива. Наслеђивање се користи тамо где постоји веза „постоји“. Пример: Хиундаи је аутомобил ИЛИ МС Ворд је софтвер.
П # 12) Која је разлика између надоградњи и примена?
Одговор: Кључна реч ектендс и имплементс користи се за наслеђивање, али на различите начине.
Разлике између кључних речи Ектендс и Имплементс у Јави су објашњене у наставку:
Продужава | Опрема |
---|---|
Класа може проширити другу класу (дете које продужава родитеље наслеђивањем његових карактеристика). Интерфејс такође наслеђује (помоћу кључне речи проширује) други интерфејс. | Класа може да имплементира интерфејс |
Поткласа која се проширује на супер класу можда неће надјачати све методе супер класе | Интерфејс за имплементацију класе мора да имплементира све методе интерфејса. |
Класа може продужити само једну супер класу. | Класа може да имплементира било који број интерфејса. |
Интерфејс може проширити више интерфејса. | Интерфејс не може применити било који други интерфејс. |
Синтакса: разред Дете продужује разред Родитељ | Синтакса: класа Хибрид имплементира Росе |
П # 13) Који су различити модификатори приступа у Јави?
Одговор: Модификатори приступа у Јави контролишу опсег приступа класе, конструктора, променљиве, методе или члана података. Разне врсте модификатора приступа су следеће:
- Подразумевани модификатор приступа је без чланова података класе и класе података спецификатора приступа и доступни су у истом пакету.
- Модификатори приватног приступа су означени кључном речи привате и доступни су само унутар класе, а чак ни класа из истог пакета.
- Модификатори заштићеног приступа може бити доступан у оквиру истог пакета или поткласа из различитих пакета.
- Модификатори јавног приступа су доступни одасвуда.
П # 14) Објасните разлику између апстрактне класе и методе?
Одговор: Следе неке разлике између апстрактне класе и апстрактне методе у Јави:
Апстрактни час | Апстрактна метода |
---|---|
Објекат се не може креирати из апстрактне класе. | Апстрактна метода има потпис, али нема тело. |
Поткласа је креирала или наследила апстрактну класу за приступ члановима апстрактне класе. | Обавезно је надјачати апстрактне методе супер класе у њиховој подкласи. |
Апстрактна класа може садржати апстрактне методе или не апстрактне методе. | Час који садржи апстрактну методу треба да буде апстрактни. |
П # 15) Које су разлике између методе и конструктора?
Одговор: Следе разлике између конструктора и метода у Јави:
Конструктори | Методе |
---|---|
Име конструктора треба да се подудара са именом класе. | Методе не би требало да имају исто име као име класе. |
Користе се за стварање, иницијализацију и додељивање меморије објекту. | Методе се користе за извршавање одређених исказа написаних у њима. |
Систем се имплицитно позива на конструкторе кад год се креирају објекти. | Методе се позивају када се позове. |
Позивају се помоћу нове кључне речи током креирања инстанце класе (објекта). | Методе се позивају током извршавања програма. |
Конструктор нема тип повратка. | Метода има повратни тип. |
Конструктор не може да наследи подкласа. | Методе могу наследити поткласе. |
П # 16) Шта је конструктор у Јави?
Одговор: Конструктор је метода без повратног типа и има исто име као и назив класе. Када креирамо објекат, подразумевани конструктор додељује меморију за објекат током компајлирања Јава кода. Конструктори се користе за иницијализацију објеката и постављање почетних вредности за атрибуте објеката.
најбоља бесплатна апликација за преузимање музике за андроид
П # 17) Колико се врста конструктора може користити у Јави? Молим објасните.
Одговор: У основи постоје три врсте конструктора у Јави.
Су:
- Подразумевани конструктор: Овај конструктор је без икаквог параметра и позива се сваки пут када креирате инстанцу класе (објекта). Ако је класа Емплоиее, тада ће синтакса подразумеваног конструктора бити Емплоиее ().
- Но-арг конструктор: Као што назив имплицира, конструктор без икаквог аргумента назива се конструктор без аргумента.
- Параметарски конструктор: Конструктор са великим бројем параметара назива се параметризовани конструктор. Од вас се тражи да наведете аргументе, тј. Почетне вредности с обзиром на тип података параметара у том конструктору.
П # 18) Зашто се нова кључна реч користи у Јави?
Одговор: Када креирамо инстанцу класе, тј. Објеката, користимо кључну реч Јава Нова . Алоцира меморију у подручју гомиле гдје ЈВМ резервира простор за објекат. Интерно позива и подразумевани конструктор.
Синтакса:
Class_name obj = new Class_name();
П # 19) Када користите супер кључну реч?
Одговор: Супер је Јава кључна реч која се користи за идентификовање или упућивање надређене (основне) класе.
- Можемо користити супер за приступ конструктору супер класе и методама позива супер класе.
- Када су имена метода иста у супер класи и подкласи, да би се референцирала на супер класу, супер користи се кључна реч.
- Да би приступили члановима матичне класе са истим именом када су присутни у родитељској и подређеној класи.
- Супер може се користити за упућивање експлицитног позива но-арг и параметризованим конструкторима родитељске класе.
- Приступ методу родитељске класе може се извршити помоћу супер , када је класа детета заменила метод.
П # 20) Када користите ову кључну реч?
Одговор: ово Кључна реч у Јави односи се на тренутни објекат у конструктору или у методи.
- Када атрибути класе и параметризовани конструктори имају исто име, ово користи се кључна реч.
- Кључне речи ово позива тренутни конструктор класе, метод тренутне класе, враћа објект тренутне класе, прослеђује аргумент у конструктору и позив методе.
П # 21) Која је разлика између полиморфизма током извођења и времена компајлирања?
Одговор: Полиморфизам у време извођења и током компајлирања су две различите врсте полиморфизма. Њихове разлике су објашњене у наставку:
Саставите временски полиморфизам | Рунтиме полиморфизам |
---|---|
Позив разрешава компајлер у полиморфизму времена компајлирања. | Преводник не разрешава позив у рунтиме полиморфизму. |
Такође је познато као статичко везивање и преоптерећење метода. | Такође је познато као динамичко, касно и надјачавање метода. |
Методе истог имена са различитим параметрима или методе са истим потписом и различитим типовима повратка су полиморфизам времена компајлирања. | Метода истог имена са истим параметрима или потписом повезаним у различитим класама назива се надјачавање методе. |
Постиже се преоптерећењем функције и руковаоца. | То се може постићи показивачима и виртуелним функцијама. |
Као што се све ствари извршавају у време компајлирања. полиморфизам током компајлирања је мање флексибилан. | Како се ствари извршавају у току времена, полиморфизам извођења је флексибилнији. |
П # 22) Које објектно оријентисане функције се користе у Јави?
Одговор: Концепт коришћења објекта у програмском језику Јава погодује употреби објектно оријентисаних концепата попут енкапсулације за међусобно повезивање стања и понашања објекта, обезбеђује приступ подацима спецификацијама приступа, функције попут апстракције у скривању информација, наслеђивање за проширење стања , и понашање основних класа према подређеним часовима, полиморфизам времена компајлирања и рунтиме за преоптерећење метода, односно превладавање методе.
П # 23) Шта је преоптерећење метода?
Одговор: Када две или више метода са истим именом имају или различит број параметара или различите врсте параметара, ове методе могу имати или не морају имати различите типове повратка, онда су то преоптерећене методе, а карактеристика је преоптерећење метода. Преоптерећење метода назива се и полиморфизам времена компајлирања.
П # 24) Шта је надјачавање метода?
Одговор: Када метода подкласе (изведена, подређена класа) има исто име, параметре (потпис) и исти тип повратка као и метода у својој супер класи (основна, родитељска класа), тада се каже да је метода у поткласи замењена метода у суперкласи. Ова карактеристика је такође позната и као полиморфизам током извођења.
П # 25) Објасните преоптерећење конструктора.
Одговор: Више конструктора који имају различите параметре, тако да се различити задаци могу изводити са сваким конструктором, познато је као преоптерећење конструктора. Са преоптерећењем конструктора, објекти се могу креирати на различите начине. Разне класе колекција у Јава АПИ-у су примери преоптерећења конструктора.
П # 26) Које се врсте аргумената могу користити у Јави?
Одговор: За Јава методе и функције, подаци о параметрима могу се слати и примати на различите начине. Ако је методаБ () позвана из методеА (), методаА () је функција позиваоца, а методаБ () функција, аргументи послани методомА () су стварни аргументи, а параметри методеБ () називају се формални аргументи.
- Позовите по вредности: Промене у формалном параметру (параметри методеБ ()) не враћају се позиваоцу (метходА ()), ова метода се назива позив по вредности . Јава подржава позив по вредности.
- Позив путем референце: Промене направљене у формалном параметру (параметри методеБ ()) враћају се позиваоцу (параметри методеБ ()).
- Све промене формалних параметара (параметри методеБ ()) одражавају се на стварним параметрима (аргументи које шаље методаА ()). То се позива позивом путем референце.
П # 27) Разликовати статичко и динамичко везивање?
Одговор: Разлике између статичког и динамичког везивања објашњене су у доњој табели.
Статично везивање | Динамиц Биндинг |
---|---|
Статично везивање у Јави користи врсту поља и класе као резолуцију. | Динамичко везивање у Јави користи објекат за решавање везивања. |
Преоптерећење метода је пример статичког везивања. | Замена методе је пример динамичког везивања. |
Статичко везивање се решава у време компајлирања. | Динамичко везивање се решава у време извођења. |
Методе и променљиве које користе статичко везивање су приватни, коначни и статички типови. | Виртуелне методе користе динамичко везивање. |
П # 28) Можете ли објаснити основну класу, подкласу и суперкласу?
Одговор: Основна класа, подкласа и супер класа у Јави су објашњени на следећи начин:
- Основна класа или родитељска класа је супер класа и класа је из које је изведена поткласа или подређена класа.
- Поткласа је класа која наслеђује атрибуте (својства) и методе (понашање) од основне класе.
П # 29) Да ли је преоптерећење оператора подржано у Јави?
Одговор: Јава не подржава преоптерећење оператора,
- То чини тумача да улаже више напора да разуме стварну функционалност оператора чинећи код сложеним и тешким за компајлирање.
- Преоптерећење оператора чини програме склонијим грешкама.
- Међутим, карактеристика преоптерећења оператера може се постићи у преоптерећењу метода на једноставан, јасан начин и без грешака.
П # 30) Када се користи метода финализације?
Одговор: довршити метода се позива непосредно пре него што ће се објекат сакупљати. Овај метод поништава минимализовање цурења меморије, предузимање активности чишћења уклањањем системских ресурса.
П # 31) Објасните токене.
Одговор: Токени у програму Јава су најмањи елементи које компајлер препознаје. Идентификатори, кључне речи, литерали, оператори и сепаратори су примери токена.
Закључак
Објектно оријентисани концепти програмирања саставни су део програмера, аутоматизације, као и ручних тестера који дизајнирају оквир за аутоматизацију како би тестирали апликацију или развили апликације са програмским језиком Јава.
Дубинско разумевање је обавезно за све објектно оријентисане функције као што су класа, објекат, апстракција, инкапсулација, наслеђивање, полиморфизам и примена ових концепата у програмском језику као што је Јава за постизање захтева купаца.
Покушали смо да покријемо најважнија објектно оријентисана питања у интервјуу за програме и дали примере одговарајућих примера.
Желимо вам све најбоље за ваш предстојећи интервју!
Препоручено читање
- ООП Јава: Увод у објектно оријентисано програмирање на Јави
- Топ 20 Јава Интервју програма за програмирање и кодирање Интервјуа
- Најпопуларнијих 50+ основних питања и одговора за Јава интервјуе
- Јава интерфејс и лекција са апстрактним часовима са примерима
- Инкапсулација у Јави: Комплетна лекција са примерима
- Шта је апстракција у Јави - научите на примерима
- ООПС концепти у Ц #: Водич за концепт објектно оријентисаног програмирања
- Питхон ООПс концепти (класе Питхон, објекти и наслеђивање)