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

Значение объектно-ориентированного программирования

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

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

Каждый объект имеет три измерения: идентичность, атрибуты и поведение.
Атрибуты описывают текущее состояние объекта, и то, что объект способен делать, демонстрируется его поведением.

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

Инкапсуляция означает действие по заключению чего-либо в капсулу или как бы в нее. С точки зрения ООП, инкапсуляция означает сохранение приватности состояния каждого объекта внутри класса. Другие объекты не имеют доступа к этому состоянию. Вместо этого они могут вызывать только список общедоступных методов или функций. Итак, в этом случае объект управляет своим состоянием с помощью методов. Так, например, если у нас есть два разных класса объектов dog и cat, объект dog не может получить доступ к методам cat. В реальной жизни собака может только лаять и не может делать то, что могут делать кошки.

Абстракция

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

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

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

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

Это означает, что вы создаете (дочерний) класс, производя его от другого (родительского) класса.

Полиморфизм

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

Если вам интересно увидеть больше примеров полиморфизма, проверьте эту ссылку на stackoverflow

Вывод

Концепция объектно-ориентированного программирования - частая тема собеседований с программистами или веб-разработчиками. Итак, убедитесь, что вы полностью понимаете и усваиваете четыре принципа ООП. Я надеюсь, что смогу дать вам лучшее понимание того, что такое концепция ООП. Если вам понравился пост, поставьте мне 👏 👏 👏 👏 👏 или оставьте комментарий. пожалуйста, подпишитесь на меня в твиттере на @salmaeng