Введение

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

Что такое объектно-ориентированное программирование

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

Класс

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

Объект

Объект может быть определен как экземпляр или версия класса. Поскольку вы построили свой дом в разных местах. скажем, в локации А мы построили дом с таким же планом, а в локации Б у нас также есть дом с таким же планом. Дома в этих различных местах будут экземпляром класса. В ООП экземпляр класса называется объектом

Метод

Метод можно определить как поведение класса, он сообщает, что класс может делать.

Создание

Создание экземпляра объекта класса называется инстанциацией.

Концепции ООП

Есть четыре столпа объектно-ориентированного программирования, а именно:

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

Попробуем разобраться в каждом из них самым простым способом

Абстракция

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

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

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

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

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

Полиморфизм

Полиморфизм - это способность объекта принимать разные формы. Попробуем разобраться в этом на примере урока животных. Допустим, у нас есть базовый класс animal и производные классы dog, snake и cat. Внутри базового класса у нас есть метод

speak() 

который выведет, как говорят животные.
у всех производных классов будет своя собственная версия speak. поэтому метод Speak внутри класса dog будет выводить ( dog barks ), метод speak внутри класса cat будет выводить (cat mews), а также метод speak внутри класса snake будет выводить (snake hiss )
Характеристика возможности присвоения другого значения или использование метода speak() для каждого производного класса известно как полиморфизм

Спасибо