Съдържание[Крия][Покажи]
- 1. Какво точно е обектно ориентирано програмиране?
- 2. Защо са необходими ООП?
- 3. Какви предимства предлагат принципите на OOPS?
- 4. Какви са стълбовете на концепцията за OOPs?
- 5. Какво точно е клас?
- 6. Какво всъщност е обект?
- 7. Какви са ограниченията на ООП?
- 8. Какво е наследяване?
- 9. Какво точно е капсулирането?
- 10. Какво е полиморфизъм?
- 11. Какво точно е абстракцията?
- 12. Какво точно представлява претоварването на метода?
- 13. Какво точно е отмяна на метода?
- 14. Какво точно е суперклас?
- 15. Какво точно е подклас?
- 16. Какво точно е статичен полиморфизъм?
- 17. Какво точно е динамичен полиморфизъм?
- 18. Опишете понятието конструктор.
- 19. Какво точно представляват модификаторите за достъп?
- 20. Какво точно е деструктор?
- 21. Какво точно е хибридно наследяване?
- 22. Какво точно е йерархичното наследяване?
- 23. Какви са недостатъците на наследяването?
- 24. Какво точно е изключение?
- 25. Какво точно представлява обработката на изключения и какви са ползите от нея?
- 26. Какво точно представляват виртуалните функции?
- 27. Какво всъщност представлява функцията приятел?
- 28. Какво точно е Garbage Collection?
- 29. Какво точно е свързването?
- 30. Какво точно е кохезия?
- 31. Опишете блок try/catch.
- 32. Опишете финален блок.
- 33. Какво точно е интерфейс?
- 34. Какво точно е композиция?
- 35. Какво всъщност представлява верижното свързване на конструктори?
- Заключение
Една от най-влиятелните парадигми за програмиране се нарича ООП или обектно-ориентирано програмиране. Вместо функции и процеси, той набляга на класове и обекти.
Основната му цел е да свързва данни и неща, така че да е по-лесно да се работи с тях. Всеки обект в ООП се състои от код под формата на процедури или методи и данни под формата на полета.
Езици като C++, Objective C, Python, Perl и Java са едни от най-популярните обектно-ориентирани програмни езици.
Изключително важно е да разберете повече за това, тъй като въпросите за интервюто са изключително типични. Повечето фирми търсят инженери, които са запознати с обектно-ориентирани методи и модели. Така че, ако възнамерявате да присъствате на интервю, трябва да сте добре запознати с идеите за ООП.
В тази публикация ще бъдат показани различни въпроси за интервю за обектно-ориентирано програмиране от начинаещи до експертни нива. Следователно можете да преминете всяко ниво на интервю и да си осигурите мечтаната позиция.
1. Какво точно е обектно ориентирано програмиране?
Програмирането, което е обектно-ориентирано (ООП), се основава на действителни обекти, а не само на функции и процеси. Създават се класове за отделни продукти.
Наследяване, полиморфизъм и прикриване са примери за концепции от реалния свят, които ООП включват в програмирането. Той също така прави възможно свързването на данни и код.
2. Защо са необходими ООП?
Има няколко причини, поради които ООП са за предпочитане, но следните са най-важните:
- OOP позволяват на хората лесно да разберат софтуера, дори ако не са запознати с изпълнението.
- Ами сега, подобрява четимостта, разбираемостта и поддръжката с коефициент десет.
- Използвайки OOP, дори изключително големи приложения могат лесно да бъдат изградени и контролирани.
3. Какви предимства предлагат принципите на OOPS?
- OOPS, програмните обекти симулират обекти от действителния свят, намалявайки сложността и подобрявайки яснотата на програмата.
- Обектите могат да се използват многократно в много програми.
- Всеки обект създава отделен обект, чиито вътрешни операции са независими от други системни компоненти.
- Чрез въвеждане на няколко нови обекта и актуализиране на няколко вече съществуващи е възможно да се добави нова функционалност или да се адаптира към променящите се условия на работа.
- Процесите или представянето на данни на OOPs програма могат лесно да претърпят малки корекции.
4. Какви са стълбовете на концепцията за OOPs?
Следните са основните стълбове на ООП:
наследяване: Позволява на класовете да наследяват атрибутите на друг клас.
Капсулирането: Това се определя като свойство на обект, което прикрива критична информация. Това запазва данните скрити от членовете на класа. Спецификаторите описват как атрибутът на обекта е достъпен в кода.
полиморфизъм: Това ви позволява да извършвате една дейност по няколко начина. Това се осъществява чрез интерфейси, в които декларираме един интерфейс, който впоследствие се имплементира няколко пъти.
абстракция: Можете да използвате тази функция, за да скриете критична информация от външния свят и да представите само основните факти.
5. Какво точно е клас?
Класът е прототип, съставен от обекти в различни състояния и с различно поведение. Той има редица методи, които се споделят от обектите в този клас.
6. Какво всъщност е обект?
Обектът е обект от реалния свят, който служи като основна единица на ООП, като например стол, котка или куче. Различните обекти имат различни състояния, свойства и действия.
7. Какви са ограниченията на ООП?
- Размерът е по-голям от този на други приложения.
- Изисква известно привикване.
- Определени видове проблеми не изискват това.
- Създаването му беше трудоемко и в сравнение с други приложения работи по-бавно.
8. Какво е наследяване?
Понятието, наречено наследяване, се отнася до споделянето на установената структура и поведение на клас от друг клас. Когато наследяването се прилага към един клас, то се нарича единично наследяване; когато зависи от много класове, това се нарича множествено наследяване.
9. Какво точно е капсулирането?
Идеята за ООП включва и капсулиране. Той описва смесването на данни и техники за манипулиране на данни. Освен това помага за предотвратяване на директен достъп до някои части на обект.
10. Какво е полиморфизъм?
В ООП езиците полиморфизмът е фундаментална концепция. Показва как различни класове могат да споделят интерфейс. Всички тези класове могат да имат уникални реализации на интерфейса.
11. Какво точно е абстракцията?
Абстракцията е концепция за обектно-ориентирано програмиране (ООП), използвана за създаване на структура на обекти от реалния свят. Той „показва“ само най-важните качества и „скрива“ чужда информация от външния свят. Основната цел на абстракцията е да предпази хората от ненужна информация.
12. Какво точно представлява претоварването на метода?
Възможно е две или повече процедури да имат едно и също име. Те обаче трябва да имат различни параметри, различен брой параметри, различни видове или и двете. Те са известни като претоварени методи, а функцията е известна като претоварване на метод.
13. Какво точно е отмяна на метода?
Обектно-ориентираното програмиране включва идеята за отмяна на метода. Това е езикова характеристика, която позволява на подклас или дъщерен клас да предложи персонализирано изпълнение на метод, който един от неговите суперкласове или родителски класове вече предоставя.
14. Какво точно е суперклас?
Суперкласът, често известен като базов клас, е тип клас, който действа като родител на друг клас или класове. Класът Car, например, има подклас, наречен Vehicle.
15. Какво точно е подклас?
Един подклас е подклас на друг клас. Ван, например, е подклас превозно средство или производен клас.
16. Какво точно е статичен полиморфизъм?
По време на компилиране се осъществява тип полиморфизъм, известен като статичен полиморфизъм (статично свързване). Претоварването на метода е вид полиморфизъм по време на компилиране.
17. Какво точно е динамичен полиморфизъм?
Един вид полиморфизъм, който се разрешава по време на изпълнение, се нарича полиморфизъм по време на изпълнение, известен също като динамичен полиморфизъм (динамично свързване). Отмяната на методите е илюстрация на полиморфизъм по време на изпълнение.
18. Опишете понятието конструктор.
Конструкторът е специфичен метод на клас, който се извиква автоматично, когато се създаде екземпляр на клас. Когато получите достъп до класа, той се конструира със същото име като класа и инициализира всички негови членове. Основните характеристики на конструктора са следните:
Няма тип връщане за конструктори.
Възможно е претоварване на конструкторите.
Не е необходимо да се указва конструктор; .NET Framework ще го направи автоматично.
19. Какво точно представляват модификаторите за достъп?
В обектно-ориентираните езици ключовите думи са модификатори на достъп или спецификатори на достъп. Той помага при конфигурирането на класове, методи и достъпност на други членове.
20. Какво точно е деструктор?
Деструкторът е метод за освобождаване на ресурсите, присвоени на даден обект. Когато даден обект бъде унищожен, този метод се извиква автоматично.
21. Какво точно е хибридно наследяване?
Хибридното наследяване е вид наследство, генерирано от смесването на няколко форми на наследяване като единично, множествено и т.н.
22. Какво точно е йерархичното наследяване?
Множество подкласове наследяват от родителски клас в ситуация на йерархично наследяване. Вид наследяване, при което множество класове произлизат от един родител или базов клас, е известно като йерархично наследяване. Например класът плодове може да съдържа подкласове като „ябълка“, „манго“, „банан“, „череша“ и т.н.
23. Какви са недостатъците на наследяването?
Удължава и усложнява процеса на изпълнение. Това също налага превключване между различни класове. Класовете родител и дете винаги са неразривно свързани.
Промените в учебната програма биха наложили ревизии както за родителя, така и за класа на детето. Наследяването трябва да се прилага внимателно или резултатите ще бъдат грешни.
24. Какво точно е изключение?
Изключение е инцидент, който пречи на обичайната работа на кода. За да продължите изпълнението, можете да обработите тези изключения в Java. В Java има много видове предварително дефинирани изключения и е осигурена обработка на изключения за контролиране на повдигнатите изключения с помощта на блокове try-catch.
25. Какво точно представлява обработката на изключения и какви са ползите от нея?
Най-важният метод в Java за справяне с неочаквани грешки по време на изпълнение е обработката на изключения. Позволява ви да контролирате грешките по време на изпълнение, които възникват по време на изпълнение на програмата.
Предимствата на обработката на изключения включват способността да се поддържа редовен програмен поток, докато се управляват изключения. Например, ако възникне грешка в един раздел на програмата, това няма да има ефект върху останалата част от програмата, ако обработим изключението с блокове try-catch.
26. Какво точно представляват виртуалните функции?
Виртуалните функции също са включени във функциите на родителския клас и се заместват от подкласа. Тези процедури помагат за постигането на полиморфизъм по време на изпълнение.
27. Какво всъщност представлява функцията приятел?
Приятелска функция е функция, която принадлежи към клас и има разрешение за достъп до своите публични, частни или защитени данни. Ако функцията е дефинирана извън класа, не е възможно да се извлекат тези данни. Ключовите думи за контрол на достъпа private, public и protected нямат отношение към декларация за приятел, която може да бъде направена навсякъде в декларацията на класа.
28. Какво точно е Garbage Collection?
Събирането на боклука (GC) е елемент от езици за програмиране като C# и Java, който служи като система за възстановяване на паметта. Машината за събиране на отпадъци (GC) е компонент на език за програмиране, който позволява автоматично освобождаване на пространство в паметта за обекти, които приложението вече не използва.
29. Какво точно е свързването?
Отнася се за ситуации, в които различни класове разчитат един на друг и споделят знания. Силна връзка възниква, когато един клас има подробни познания за друг клас. Можете да укажете видимостта на класове, методи или променливи, като използвате модификатори за достъп. Интерфейсите се използват за осигуряване на по-слабо свързване.
30. Какво точно е кохезия?
Начинът, по който даден компонент извършва определена дейност, се нарича негова кохезия. Един силен, кохезивен подход просто ще изпълни определената задача, докато слаб, кохезивен метод би разделил отделната задача на няколко по-малки задачи и след това ще ги завърши.
Пакетът Java.io е доста последователен, но пакетът java.util не е такъв.
31. Опишете блок try/catch.
Когато дадена програма срещне грешка поради неправилен код или данни, „опитай“ и „улови“ показват как да я управлявате. Опитният блок е името на частта от кода, когато възникват изключения. Блок catch се използва за улавяне и справяне с изключения от try блокове.
32. Опишете финален блок.
Работната част от кода на ключовата дума try е посочена последна. Той обозначава кода, който винаги се изпълнява веднага след пробния период и всички catch блокове преди завършването на метода. Последният блок винаги се изпълнява, независимо дали е хвърлено или уловено изключение.
33. Какво точно е интерфейс?
Интерфейсът е комбинация от абстрактни методи и дефиниран от потребителя тип данни. Клас имплементира интерфейс, наследявайки абстрактните функции на интерфейса.
Класът представлява свойствата и поведението на даден обект, докато интерфейсът включва поведението, което класът прилага. Интерфейсът представлява „какво“, докато класът предава „как“.
34. Какво точно е композиция?
Съставът може да се използва за постигане на връзка. Той демонстрира силна обектна връзка между зависимите и независимите обекти, за разлика от агрегацията. Зависимият обект не съществува при това обстоятелство и ще бъде премахнат, ако родителският обект бъде изтрит.
35. Какво всъщност представлява верижното свързване на конструктори?
Верижното свързване на конструктор е техника за извикване на един конструктор от друг във връзка с текущата препратка към обект. Има две възможности:
- Конструкторът в текущия клас може да бъде препратен с помощта на ключовата дума „this“.
- Ключовата дума "super" ще се използва за извикване на конструктора от базовия клас.
Заключение
Обектно-ориентираното програмиране налага да се мисли за структурата на програмата и да се подготви предварително. Проучване как да се разделят изискванията на основни, многократно използвани класове, които могат да се използват за създаване на екземпляри на неща.
Като цяло, приемането на ООП осигурява подобрение структури от данни и повторно използване, което спестява време в дългосрочен план. Вижте Серията интервюта на Hashdork за помощ при подготовката на интервюто.
Оставете коментар