21 часто задаваемый вопрос об ООП-интервью и ответы на них, которые нужно знать сегодня

Опубликовано: 2022-09-20

Вопросы для интервью по объектно-ориентированному программированию могут помочь программистам и разработчикам улучшить свои знания ключевых концепций мира программирования.

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

Некоторые языки программирования на основе ООП — это Objective-C, Java, Ada, Perl, Python, C++ и другие.

Крупные компании ищут разработчиков, владеющих объектно-ориентированными подходами, а также шаблонами.

Итак, если вы планируете присутствовать на таком собеседовании, вы должны иметь глубокое понимание концепций ООП.

Давайте рассмотрим некоторые часто задаваемые вопросы и ответы на них, чтобы помочь вам подготовиться к собеседованиям и тестам.

Объектно-ориентированное программирование (ООП): обзор

ой

ООП — это парадигма программирования, которая вращается вокруг объектов. Здесь объекты рассматриваются как экземпляры реального мира, такие как класс, который включает в себя некоторые поведения и характеристики, указанные в шаблоне класса.

Например, давайте рассмотрим автомобиль. Согласно модели ООП:

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

Здесь характеристики также известны как свойства, атрибуты или данные, тогда как поведение известно как процедуры, методы или функции в языках программирования.

Итак, давайте начнем с некоторых часто задаваемых вопросов об ООП-интервью.

Что подразумевается под термином ООП?

Ответ: Объектно-ориентированное программирование (ООП) — это модель программирования, основанная на объектах и ​​классах, а не на процедурах и функциях. Отдельные объекты объединены в классы. ООП описывает объекты реального мира с помощью таких концепций, как полиморфизм, сокрытие, наследование и т. д., а также парадигмы программирования.

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

Сюда входят программы для проектирования и производства вместе с мобильным приложением. Например, вы можете использовать ООП для программного обеспечения для моделирования систем производства.

Какие есть другие парадигмы программирования, кроме ООП?

парадигмы программирования

Ответ: Парадигмы программирования — это метод категоризации языков программирования на основе особенностей каждого языка. Существует два типа парадигм программирования:

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

В чем разница между ООП и СОП?

Ответ: Давайте поймем разницу между ООП и СОП с помощью этой таблицы:

Объектно-ориентированного программирования Структурно-ориентированное программирование
Это модель программирования, основанная на объектах, а не на процедурах и функциях. Он обеспечивает логическую структуру программы, где программы разделены на функции.
Применяет подход «снизу вверх» Применяет подход «сверху вниз»
Обеспечивает сокрытие или инкапсуляцию данных Не обеспечивает скрытие данных
Он может решать сложные проблемы. Это может решить умеренные проблемы.
Низкая избыточность, так как код можно использовать повторно Он не поддерживает повторное использование кода.
Более гибкий Менее гибкий
Его главная задача — данные. Его основной задачей является логическая структура программы.

Каковы основные особенности ООП?

особенностиofoops

Ответ: Вот основные особенности ООП:

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

Наследование, полиморфизм и инкапсуляция являются фундаментальными элементами ООП, которые отличают эти функции от языков, не связанных с ООП.

Что такое инкапсуляция?

Ответ. Инкапсуляция — это метод помещения класса, переменных, методов и многого другого в капсулу, которая требуется для выполнения работы и представления той же капсулы пользователю. Проще говоря, все необходимые методы и данные собраны воедино, а лишнее скрыто от пользователей.

Он также может быть определен другими способами:

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

Что такое Полиморфизм?

полиморфизм

Ответ: Давайте разберемся с полиморфизмом, разделив термин на два слова, которые его образуют:

«Поли» означает «много».

«Морф» означает «формы».

Итак, полиморфизм можно описать как объект, имеющий различную форму.

В ООП это называется процессом, посредством которого некоторые данные, объект, метод или код ведут себя по-разному в различных контекстах или обстоятельствах. В модели ООП есть два типа полиморфизма:

  • Полиморфизм времени выполнения
  • Полиморфизм времени компиляции

Другими словами, это несколько определений одного интерфейса. Например, есть класс с именем «транспортное средство», который состоит из метода «скорость». Невозможно определить скорость, так как разные транспортные средства имеют разные скорости. Таким образом, это может быть определено в подклассах различных определений для различных транспортных средств.

Что такое статический полиморфизм?

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

Здесь методы используют одинаковое имя, но параметры каждого имени различаются. Объект ведет себя по-разному для аналогичного триггера. Таким образом, несколько методов реализуются в одном классе.

Что такое динамический полиморфизм?

динамический полиморфизм

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

Например, создаются два класса, bike и Yamaha, и класс Yamaha расширяет класс bike, переопределяя его метод run(). Поскольку метод подкласса переопределяет метод родительского класса, он вызывается во время выполнения.

Что такое класс?

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

Однако класс — это план или шаблон для объектов. Можно спроектировать столько объектов, сколько требуется, на основе класса. Например, сначала создается шаблон автомобиля. После этого на основе шаблона автомобиля проектируются различные агрегаты автомобилей.

Что такое объект?

объект

Ответ . Объект можно определить как экземпляр класса, который содержит экземпляры поведения и членов, определенных в шаблоне. Объект — это фактическая сущность, с которой взаимодействует пользователь, а класс — это всего лишь план для этого объекта.

Таким образом, объекты имеют некоторые характеристики или поведение и занимают место — например, конкретная модель автомобиля.

В чем разница между классом и структурой?

Ответ: Давайте разберемся в этом с помощью таблицы:

Учебный класс Структура
Классы относятся к ссылочным типам. Структуры имеют типы значений.
Он выделяется в куче памяти. Он размещается в памяти стека.
Выделение дешевле в большом ссылочном типе Выделение дешевле в типе значения, чем в ссылочном типе
Он имеет безграничные возможности. Он имеет ограниченные возможности.
Класс используется в больших программах. Структура используется в небольших программах.
Он содержит конструктор и деструктор. Он содержит параметризованный или статический конструктор.
Он использует ключевое слово new() каждый раз, когда создает экземпляры. Он может легко создавать экземпляры с ключевыми словами или без них.
Класс может наследовать от другого класса. Структура не может наследоваться.
Члены данных класса могут быть защищены. Члены данных структуры не могут быть защищены.
Члены функций могут быть абстрактными или виртуальными. Члены функции не могут быть абстрактными или виртуальными
Две разные переменные класса могут включать в себя ссылку на похожий объект. Каждая переменная содержит свою собственную копию.

Что такое наследование?

наследование

Ответ: Наследование — это одна из особенностей ООП, которая позволяет классу наследовать основные свойства другого класса. Например, если «транспортное средство» — это класс, то «автомобиль», «велосипед» и т. д. — это другие классы, которые могут наследовать ключевые свойства класса «транспортное средство».

Эта функция помогает избавиться от избыточного кода; следовательно, уменьшение размера кода. Проще говоря, наследование определяется как получатель свойств от родительского класса к дочернему классу. Здесь «транспортное средство» — это родительский класс, а «автомобиль» или «велосипед» — дочерние классы из приведенного выше примера.

Таким образом, вы можете повторно использовать программный код одного класса в другом классе, не написав снова один и тот же код и не тратя время в процессе.

Какие существуют виды наследования?

Ответ. В модели ООП используются различные типы наследования, например:

  • Одиночное наследование: оно определяется как наследование, при котором один класс наследует общие функции одного базового класса.
  • Множественное наследование: это проявляется, когда один класс наследует более одного класса.
  • Многоуровневое наследование: это означает, что класс наследуется от других классов, которые являются подклассами другого класса.
  • Иерархическое наследование: это относится к наследованию, когда один класс имеет несколько подклассов.
  • Гибридное наследование: это комбинация многоуровневого и множественного наследования.

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

ограничения наследования

Ответ: Некоторые из ограничений наследования заключаются в следующем:

  • Это увеличивает усилия и время, необходимые для выполнения программы. Это связано с тем, что для этого требуется часто переходить из одного класса в другой, что требует времени.
  • Родительский класс вместе с дочерним классом очень тесно связаны, что снижает гибкость.
  • Он требует осторожного включения, иначе это приведет к недостаточным или неправильным результатам.
  • Одно изменение в программе может привести к изменению кода как в родительском, так и в дочернем классе.

Что такое Абстракция?

Ответ: Абстракция — один из элементов ООП. Ключевая роль абстракции заключается в том, чтобы справляться со сложностью. Это делается путем сокрытия нежелательных деталей от пользователей. Это позволяет пользователям реализовывать сложную логику поверх абстракции, не задумываясь о скрытой сложности.

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

Существует два типа абстракции:

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

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

конструктор

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

При создании конструктора необходимо помнить несколько вещей:

  • Он называется так же, как имя класса.
  • Он не может быть абстрактным, окончательным или статическим.
  • У него нет переменной возвращаемого типа.

Какие существуют типы конструкторов в C++?

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

  • Конструктор по умолчанию: конструктор без параметров или аргументов в определении. Этот тип конструктора используется для инициализации элементов данных или переменных с реальными значениями.
  • Параметризованный конструктор: содержит аргументы или параметры в объявлении и определении. Через параметризованный конструктор может проходить более одного параметра. Он используется для перегрузки, чтобы узнать различия в нескольких конструкторах.
  • Конструктор копирования: это функция-член, которая использует другой объект аналогичного класса для инициализации объекта. Более того, это помогает копировать данные с одного объекта на другой.

Что такое Деструктор?

деструктор

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

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

Другими словами, деструктор уничтожает объекты, инициализированные конструктором. Это специальная функция-член с тем же именем, что и у класса, но с предшествующим символом (~). Деструктор может быть перегружен, так как это односторонняя функция.

Что такое сборка мусора (GC)?

Ответ: Сборка мусора (GC) — это элемент восстановления памяти, встроенный в языки программирования, такие как Java и C#. Язык программирования с поддержкой GC содержит по крайней мере один сборщик мусора, который автоматически освобождает место в памяти, которое больше не требуется в программе.

Сборка мусора подтверждает, что программа все еще находится в пределах своей квоты памяти. Это не позволяет разработчикам вручную управлять памятью программы, что сводит к минимуму ошибки, связанные с памятью.

Что такое обработка исключений?

Обработка исключений

Ответ. Обработка исключений — это метод реагирования на непредвиденные события во время работы компьютерной программы. Программисты должны «обрабатывать» нежелательные события (исключения), чтобы предотвратить сбой системы или программы. Без этого метода исключения могут нарушить общую работу программы и привести к неэффективности или рискам.

Что такое блок try/catch?

Ответ. Попробуйте или поймайте — это ключевые слова, обозначающие обработку исключений из-за ошибок кода или данных во время выполнения программы.

  • Блок try — это блок кода, в котором возникают исключения.
  • Блок catch обрабатывает и перехватывает исключения блока try.

Операторы try и catch часто используются в различных языках программирования, включая C++. C#, Java, SQL и JavaScript. Каждый оператор try соответствует оператору catch для обработки выполнения. Вот еще несколько вещей, которые следует помнить в операторах try и catch :

  • За блоком try следует блок catch.
  • За блоком try следует как минимум один блок catch.
  • За блоком try следует другой блок try, а затем блок catch.

Вывод

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

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

Вы также можете просмотреть некоторые из этих вопросов для интервью по SQL.