21 често задавани въпроса и отговора за интервю за OOP, които трябва да знаете днес

Въпросите за интервю за обектно ориентирано програмиране могат да помогнат на програмистите и разработчиците да подобрят знанията си за ключови концепции в света на програмирането.

ООП е една от най-необходимите и необходими парадигми за програмиране, фокусирана върху обекти и класове, вместо върху процедури и функции.

Някои базирани на ООП езици за програмиране са Objective-C, Java, Ada, Perl, Python, C++ и др.

Големите компании търсят разработчици, владеещи обектно-ориентирани подходи, както и модели.

Така че, ако планирате да се явите на такъв процес на интервю, трябва да имате задълбочено разбиране на концепциите на OOP.

Нека да разгледаме някои от често задаваните въпроси и отговори на OOP интервю, за да ви помогнем да се подготвите за интервюта и тестове.

Обектно ориентирано програмиране (ООП): Общ преглед

ООП е програмна парадигма, която се върти около обекти. Тук обектите се разглеждат като екземпляри от реалния свят, като клас, който включва някои поведения и характеристики, посочени в шаблона на класа.

Например, нека разгледаме кола. Според OOPs модела:

  • Обект: Автомобил. Тя може да бъде от всякакъв тип или модел, като колата, която притежавате.
  • Клас: Моделът или типът на автомобила, като BMW, Chevrolet, Kia, Audi и др.
  • Характеристики: Цвят на автомобила, номер на шаси на автомобила, тип двигател, вид скоростна кутия и др.
  • Поведение: Как да смените предавката, как да запалите колата и др.

Тук характеристиките са известни също като свойства, атрибути или данни, докато поведенията са известни като процедури, методи или функции в езиците за програмиране.

И така, нека започнем с някои често задавани въпроси за OOP интервю.

Какво се разбира под термина ООП?

Отговор: Обектно ориентираното програмиране (ООП) е модел на програмиране, базиран на обекти и класове вместо на процедури и функции. Индивидуалните обекти са подредени в класове. OOPs описва субекти от реалния свят с понятия като полиморфизъм, скриване, наследяване и т.н. и парадигми за програмиране.

OOP свързват код и данни заедно. Обектите са обекти от реалния свят, дефинирани чрез класове със специфични характеристики и поведение, докато класът се дефинира като модел за конкретен обект. Известен е също като тип данни, дефиниран от потребителя.

Това включва програми за проектиране и производство заедно с мобилното приложение. Например, можете да използвате ООП за софтуер за симулация на производствени системи.

Кои са някои други парадигми за програмиране освен ООП?

Отговор: Парадигмите на програмиране са методът за категоризиране на езиците за програмиране въз основа на характеристиките на всеки език. Има два вида програмни парадигми:

  • Императивна парадигма на програмиране: Тя се фокусира върху това как да се изпълни логиката и дефинира контролния поток. Той включва парадигмата на процедурното програмиране, обектно-ориентираното програмиране (ООП) и паралелното програмиране.
  • Парадигма на декларативното програмиране: Тя се фокусира върху това какво да се изпълни в програмата и определя нейната логика, а не контролния поток. Той включва парадигмата на логическото програмиране, парадигмата на функционалното програмиране и парадигмата на програмирането на бази данни.

Каква е разликата между OOP и SOP?

Отговор: Нека разберем разликата между OOP и SOP с тази таблица:

  Как да архивирате фотобиблиотеката на вашия Mac на външно устройство

Обектно ориентирано програмиране Структурно ориентирано програмиране Това е програмен модел, базиран на обекти вместо на процедури и функции. Той осигурява логическа структура на програмата, където програмите са разделени на функции. Следва подход отдолу нагоре Следва подход отгоре надолу Осигурява скриване или капсулиране на данни Не осигурява скриване на данни Може да решава сложни проблеми. Може да решава умерени проблеми. Ниско излишък, тъй като кодът може да се използва отново. Не поддържа повторно използване на кода. По-гъвкав По-малко гъвкав. Основната му грижа са данните. Основната му грижа е логическата структура на програмата.

Какви са основните характеристики на ООП?

Отговор: Ето основните характеристики на OOP:

  • Наследство
  • Капсулиране
  • Абстракция
  • Полиморфизъм
  • Отмяна на метода
  • Претоварване на метода
  • Обекти
  • Класове
  • Конструктори и деструктори

Наследяването, полиморфизмът и капсулирането са основните елементи на ООП, които разграничават тези функции от езиците, които не са ООП.

Какво е капсулиране?

Отговор: Капсулирането е метод за поставяне на клас, променливи, методи и други в капсула, която е необходима за извършване на работата и представяне на същата капсула на потребителя. С прости думи, всички необходими методи и данни са събрани, а ненужните подробности са скрити от потребителите.

Може да се дефинира и по други начини:

  • Свързване на данни: Капсулирането е процес на обвързване на членове на данни заедно с методите заедно като клас или като цяло.
  • Скриване на данни: Капсулирането е процес на скриване на ненужна информация, като например ограничения за достъп до член на обект и др.

Какво е полиморфизъм?

Отговор: Нека разберем полиморфизма, като разделим термина на две думи, които го формират:

„Поли“ означава „много“

„Morph“ означава „форми“

И така, полиморфизмът може да се опише като обект, който има различни форми.

В ООП това се нарича процес, чрез който някои данни, обект, метод или код се държат по различен начин при множество контексти или обстоятелства. Има два вида полиморфизъм в OOPs модела:

  • Полиморфизъм по време на изпълнение
  • Полиморфизъм на времето за компилиране

С други думи, това са множеството дефиниции на един интерфейс. Например, има клас с име „превозно средство“, който се състои от метод „скорост“. Невъзможно е да се определи скоростта, тъй като различните превозни средства имат различни скорости. По този начин това може да бъде дефинирано в подкласовете на различни дефиниции за различни превозни средства.

Какво е статичен полиморфизъм?

Отговор: Статичният полиморфизъм е известен също като полиморфизъм по време на компилиране. Това е функцията, чрез която даден обект може да бъде свързан със съответния оператор или функция въз основа на стойностите. Това може да се постигне чрез претоварване на оператор или метод.

Тук методите използват подобно име, но параметърът на всяко име варира. Обектът се държи различно за подобен тригер. По този начин множество методи се изпълняват в един и същ клас.

Какво е динамичен полиморфизъм?

Отговор: Динамичният полиморфизъм е известен също като полиморфизъм по време на изпълнение. Отнася се до типа полиморфизъм в ООП, чрез който действителното включване на функция се урежда по време на изпълнение или време на изпълнение. Може да се постигне чрез пренасочване на метода.

Например, създават се два класа, bike и Yamaha, а класът Yamaha разширява класа bike, заменяйки неговия метод run(). Тъй като методът на подклас замества метода на родителския клас, той се извиква по време на изпълнение.

Какво е клас?

Отговор: Класът може да бъде дефиниран като план или шаблон, който съдържа някои стойности, наречени членски данни. Той също така включва някои правила, които са известни като функции или поведения. Когато създавате обект, той автоматично приема функциите и данните, дефинирани в класа.

Класът обаче е план или шаблон за обекти. Човек може да проектира колкото се може повече обекти според изискванията въз основа на клас. Например, първо се създава шаблон на автомобил. След това се проектират различни единици автомобили въз основа на шаблона на автомобила.

  15 най-добри персонализирани ROM на Galaxy Note 3

Какво е обект?

Отговор: Обектът може да бъде дефиниран като екземпляр на клас, който съдържа екземпляр на поведения и членове, дефинирани в шаблона. Обектът е действителният обект, с който потребителят взаимодейства, но класът е просто план за този обект.

По този начин обектите имат някои характеристики или поведение и заемат място – например конкретен модел кола.

Каква е разликата между клас и структура?

Отговор: Нека разберем това с помощта на таблица:

Структура на класа. Класовете са от референтни типове. Структурите са от стойностни типове. Разпределя се в стекова памет. Разпределя се в стекова памет. Разпределението е по-евтино в големия референтен тип. Разпределението е по-евтино като стойностен тип, отколкото референтен тип. Има неограничени функции. има ограничени функции. Клас се използва в големи програми. Структура се използва в малки програми. Съдържа конструктор и деструктор. Съдържа параметризиран или статичен конструктор. Той използва ключова дума new() всеки път, когато създава екземпляри. Може лесно да създава екземпляри със или без ключови думи. Клас може да наследява от друг клас. Не е позволено да наследява структура. Членовете на данните на клас могат да бъдат защитени. Членовете с данни на дадена структура не могат да бъдат защитени. Членовете на функцията могат да бъдат абстрактни или виртуални. Членовете на функцията не могат да бъдат абстрактни или виртуални. Две различни променливи от клас могат да включват препратка към подобен обект. Всяка променлива съдържа собствено копие.

Какво е наследство?

Отговор: Наследяването е една от характеристиките на ООП, която позволява на даден клас да наследи основните свойства на друг клас. Например, ако „превозно средство“ е клас, тогава „кола“, „велосипед“ и т.н. са други класове, които могат да наследяват ключови свойства от класа „превозно средство“.

Тази функция помага да се отървете от излишния код; следователно, намаляване на размера на кода. С прости думи, наследяването се дефинира като приемник на свойства от родителския клас към дъщерния клас. Тук „превозно средство“ е родителският клас, а „кола“ или „велосипед“ са дъщерни класове от горния пример.

По този начин можете да използвате повторно програмния код на един клас в друг клас, без да пишете отново същия код или да губите време в процеса.

Какви са различните видове наследство?

Отговор: Има различни видове наследяване, използвани в OOPs модела, като например:

  • Единично наследяване: Определя се като наследяване, при което един клас наследява общи функции на единичен базов клас.
  • Множество наследявания: Появява се, когато един клас наследи повече от един клас.
  • Многостепенно наследяване: Това означава, че даден клас наследява от други класове, които са подкласове на някой друг клас.
  • Йерархично наследяване: Отнася се до наследяването, при което един клас има множество подкласове.
  • Хибридно наследяване: Това е комбинация от многостепенно и множествено наследяване.

Какви са ограниченията на наследството?

Отговор: Някои от ограниченията на наследяването са както следва:

  • Това увеличава усилията и времето, необходими за изпълнение на програмата. Това е така, защото изисква често прескачане от един клас в друг, което отнема време.
  • Родителският клас, заедно с дъщерния клас, са свързани много тясно, така че по-малко гъвкавост.
  • Нуждае се от внимателно включване, в противен случай би довело до недостатъчни или неправилни резултати.
  • Една единствена модификация в програмата може да доведе до промяна в кода както в родителските, така и в дъщерните класове.

Какво е абстракция?

Отговор: Абстракцията е един от елементите на ООП. Ключовата роля на абстракцията е да се справи със сложността. Това става чрез скриване на нежелани подробности от потребителите. Това позволява на потребителите да прилагат сложна логика върху абстракцията, без да мислят за скритата сложност.

  Как да видите неизпратени съобщения на линия

Например, ако сте любител на кафето, трябва да знаете колко мляко, кафе на зърна и кубчета захар искате да добавите, за да направите чаша кафе с помощта на кафе машина. Няма смисъл да мислим за принципа на работа на тази машина. Кафе машината е скрита сложност, която не е нужно да знаете, но процесът на приготвяне на кафе е необходимост.

Има два вида абстракция:

  • Абстракция на данни
  • Абстракция на процеса

Какво е конструктор?

Отговор: Конструкторът е специален метод в класа или структурата, чието име е подобно на името на класа. Той служи на необходимата цел за инициализиране на обекти. Той също така помага при създаване на данни за член, както и методи за присвояване на обекти към класа.

Когато създавате конструктор, е необходимо да имате предвид няколко неща:

  • Наименува се по същия начин като името на класа.
  • Не може да бъде абстрактен, окончателен или статичен.
  • Той няма променлива тип връщане.

Какви са различните видове конструктори в C++?

Отговор: В C++ има основно три типа конструктори:

  • Конструктор по подразбиране: Конструктор без параметри или аргументи в дефиницията. Този тип конструктор се използва за инициализиране на членове с данни или променливи с реални стойности.
  • Параметризиран конструктор: Съдържа аргументи или параметри в декларацията и дефиницията. Повече от един параметър може да премине през параметризирания конструктор. Използва се за претоварване, за да се знаят разликите в множество конструктори.
  • Конструктор за копиране: Това е членска функция, която използва друг обект от подобен клас, за да инициализира обект. Освен това помага за копиране на данни от един обект в друг.

Какво е деструктор?

Отговор: Деструкторът е метод, който се извиква автоматично, докато унищожава обект. Той изпълнява определени действия:

  • Възстановяване на хийп пространство, което е разпределено преди по време на инициализацията на обекта
  • Затваряне на връзки към база данни и файлове
  • Освобождаване на мрежови ресурси и заключване на ресурси
  • Изпълнение на различни домакински задачи

С други думи, деструкторът унищожава обектите, инициализирани от конструктора. Това е специална членска функция със същото име като името на класа, но се предхожда от символ (~). Деструкторът може да бъде претоварен, тъй като е еднопосочна функция.

Какво е събиране на отпадъци (GC)?

Отговор: Събирането на боклук (GC) е елемент за възстановяване на паметта, вграден в езици за програмиране, като Java и C#. Езикът за програмиране с активиран GC съдържа поне един събирач на боклук, който автоматично освобождава място в паметта, което вече не е необходимо в програмата.

Събирането на отпадъци потвърждава, че програмата все още е в рамките на своята квота за памет. Той не позволява на разработчиците да управляват ръчно паметта на програмата, което свежда до минимум грешките, свързани с паметта.

Какво е обработка на изключения?

Отговор: Обработката на изключения е метод за реагиране на неочаквани събития, докато компютърната програма работи. Програмистите трябва да „обработват“ нежелани събития (изключения), за да предотвратят срив на система или програма. Без този метод изключенията могат да нарушат общата работа на програмата и да доведат до неефективност или рискове.

Какво представлява блокът try/catch?

Отговор: Try или catch са ключовите думи, които представляват обработка на изключения поради кодиране или грешки в данните по време на изпълнение на програма.

  • Опитният блок е кодовият блок, в който възникват изключения
  • Блокът catch обработва и улавя изключения за опитен блок

Операторите try и catch се използват често в различни езици за програмиране, включително C++. C#, Java, SQL и JavaScript. Всеки оператор try съвпада с оператор catch, за да се справи с изпълнението. Ето още няколко неща, които трябва да запомните в изявленията за опит и улавяне:

  • Блокът try е последван от блока catch.
  • Блокът try е последван от поне един блок catch.
  • Блокът за опит е последван от друг блок за опит и последван от блока за улавяне.

Заключение

ООП е основна концепция, която програмистите трябва да знаят. Изучаването му задълбочено също ще ви помогне да програмирате добре на езици, които използват OOP концепциите.

Ако се подготвяте за интервю или тест, горните въпроси и отговори за интервю ще ви помогнат да опресните разбирането си за ООП концепции като класове, обекти, капсулиране, полиморфизъм, наследяване, абстракция и др. По този начин можете уверено да се изправите пред интервютата и да ги преминете успешно, за да изградите кариерата си.

Можете също така да разгледате някои от тези SQL въпроси за интервю.