Пошаговый подход к изучению объектно-ориентированного программирования

Опубликовано: 16 Мая, 2021

Объектно-ориентированное программирование или ООП относится к языку, который использует объекты в программировании. Это в первую очередь связано с реализацией реальных сущностей, таких как наследование, полиморфизм и т. Д., В программировании. Например - в классе живых существ; Люди, животные, растения, микроорганизмы и т. Д. Известны как объекты. ООП используется для решения реальных проблем. ООП имеет несколько дополнительных преимуществ, таких как более быстрое и простое выполнение, обеспечение четкой структуры программы, которая упрощает чтение кода другими пользователями, в нем используется принцип СУХОЙ «Не повторяйся», который упрощает поддержание кода, изменение и отладку.

Кроме того, ООП важен не только для академических экзаменов, но и очень важен для собеседований, особенно для интервью с Fresher. В ООП много тем, и в этой дорожной карте мы обсудим все эти темы последовательно. Если какой-либо новичок или студент будет следовать этой дорожной карте, он / она обязательно пройдут собеседование, а также экзамены в колледже или университете на основе программирования ООП.

1. Первый шаг

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

2. Второй шаг

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

  • Что такое объектно-ориентированное программирование?
  • Связь объектно-ориентированного программирования с реальным миром и то, как с его помощью можно решить реальные проблемы.
  • Почему мы изучаем объектно-ориентированное программирование и почему это важно?
  • Ограничения и преимущества ООП
  • Разница между процедурным и объектно-ориентированным программированием?
  • Почему ООП предпочтительнее процедурного языка программирования?

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

  • Для C ++: объектно-ориентированное программирование на C ++ Э.Балагурусами.
  • Для JAVA: Java: Полный справочник Герберта Шильдта.
  • Для Python: освоение книги по объектно-ориентированному Python Стивена Ф. Лотта.

3. Третий шаг

Теперь, после выполнения описанных выше шагов, мы продвинемся дальше по основам объектно-ориентированного языка программирования следующим образом:

  • Что такое класс
  • Что такое объект
  • Разница между классом и объектом.
  • Использование классов и объектов внутри и вне основного класса.
  • Могут ли класс и объект существовать или использоваться по отдельности?
  • Реальная аналогия класса и объекта.
  • Модификаторы доступа (общедоступные, частные, защищенные и т. Д.)
  • Функция-член (функция внутреннего и внешнего классов)

4. Четвертый шаг

Важные ключевые слова для изучения:

  1. Статическое ключевое слово
  2. Виртуальное ключевое слово
  3. Абстрактное ключевое слово
  4. Заключительное ключевое слово
  5. Явное ключевое слово
  6. Это ключевое слово
  7. новое ключевое слово
  8. ключевое слово const
  9. супер ключевое слово

Необходимо знать об этих ключевых словах, таких как их определение, использование, плюсы и минусы и т. Д., И почему это важно изучать.

5. Пятый шаг

Конструктор и деструктор:

  • Определение и работа.
  • Правила и типы.
  • Цель использования конструктора и деструктора
  • Разница между конструктором и методами (в Java)
  • Может ли конструктор выполнять другую задачу вместо инициализации?
  • Конструктор возвращает какое-либо значение?
  • Конструктор против Деструктора.
  • Есть ли класс конструктора?

6. Шестой шаг

Особенности OOPS

Полиморфизм: здесь нужно знать:

  • Что такое полиморфизм
  • Категории: Перегрузка функций / операторов, Полиморфизм времени компиляции, Переопределение функций, Полиморфизм времени выполнения
  • Какая функция может быть перегружена, а какие не могут быть перегружены с объяснением
  • Виртуальная функция
  • Динамическое связывание
  • Виртуальный класс
  • Производный класс
  • Встроенная виртуальная функция
  • Абстрактный класс
  • Чистая виртуальная функция
  • Чистый виртуальный деструктор
  • Экземпляр оператора

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

  • Подкласс
  • Суперкласс
  • Возможность повторного использования
  • Потребность в наследовании
  • Может ли ООП существовать без наследования
  • Типы наследования (одиночное, множественное, иерархическое, многоуровневое, гибридное, виртуальное наследование)
  • Примеры наследования из реальной жизни
  • Ограничение наследования
  • Запечатанный модификатор
  • Нарезка объекта

Инкапсуляция

  • Определение
  • Нужно
  • Как добиться
  • Пример из реального мира
  • Пакеты (на Java)

Абстракция

  • Определение
  • Когда использовать
  • Как достичь
  • Разница между наследованием и абстракцией
  • Разница между инкапсуляцией и абстракцией

Другие

  • Динамическое связывание
  • Сообщение передается
  • Клонирование объекта
  • Класс обертки

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

Кроме того, эти темы должны быть охвачены, следуя важному принципу обучения:

  • Получите глубокие знания по теме.
  • Необходимо знать детали реализации.
  • Как это связано с реальным миром.

7. Шаг седьмой.

  • Важные вопросы собеседования по концепции ООП:
  • C против C ++ против Java против Python (просто представьте, чем они отличаются)
  • Разница между процедурным языком и языком ООП?
  • Почему Java не является чистым языком объектно-ориентированного программирования?
  • Является ли массив примитивным типом или объектом в Java?
  • Что такое раннее и позднее связывание?
  • Что такое модификатор доступа по умолчанию?
  • Сколько экземпляров можно создать для абстрактного класса?
  • Определить сборку мусора и как это работает?
  • Определить манипуляторы?
  • Что вы имеете в виду под заключительным блоком?
  • Какая последняя переменная?
  • Что вы имеете в виду под исключением?
  • Ошибка в основном такая же, как и исключение?
  • Может ли класс унаследовать конструктор своего базового класса?
  • Когда следует использовать структуру вместо класса?
  • Разница и сходство между Struct и классом?
  • Оператор разрешения области видимости
  • Что такое глубокая / неглубокая копия?
  • Конструктор копирования против оператора присваивания
  • Можем ли мы иметь более одного значения в классе?
  • Чем деструкторы отличаются от обычных функций-членов?
  • Разница между новым и переопределением?
  • Работает ли переопределение с наследованием?
  • Обобщение против агрегирования против композиции

Важное объектно-ориентированное проектирование:

  • Создайте карту HASH
  • Дизайн кеша LRU
  • Создайте колл-центр
  • Создайте колоду карт
  • Дизайн парковки
  • Разработка системы онлайн-чата
  • Создайте адресную книгу
  • Разработка системы управления банком
  • Дизайн банкомата
  • Система управления дизайн-отелем
  • Система управления библиотекой дизайна