Объяснение концепций объектно-ориентированного программирования
Объектно-ориентированное программирование – это использование объектов, содержащих как данные, так и методы, которые взаимодействуют друг с другом. Чтобы язык считался объектно-ориентированным, он должен иметь определенные функции, такие как:
- Инкапсуляция
- Наследование
- Абстракция
- Полиморфизм
Эти функции вместе с языком, имеющим объекты и классы, составляют то, что мы называем объектно-ориентированным программированием.
Что такое инкапсуляция
Инкапсуляция достигается, когда объект сохраняет свое частное состояние, поэтому другие объекты не имеют прямого доступа к этому состоянию. Вместо этого они должны вызвать список общедоступных методов для управления состоянием.
Для примера возьмите фото ниже. У Cat есть 3 разных поля, которые все являются частными, и также частный метод meow (). Никакой другой объект, вызывающий Cat, не может изменить эти значения.
Однако у Cat также есть список общедоступных методов (Sleep, Play и Feed). Эти общедоступные методы при вызове изменяют состояние Cat, а также вызовут метод meow () для Play и Feed.
Что такое наследование
Наследование – это создание иерархии внутри ваших классов. Вы начинаете с родительского класса, а затем расширяете его до дочерних классов, которые будут повторно использовать все поля и методы родительского класса, а также любые уникальные методы, которые он реализует.
Как и в приведенном ниже примере, Teacher и Student принадлежат Rerson, но у одного есть subject (предмет), а у другого – school (школа). Rescon – это родительский класс, а Teacher и Student – дочерние классы.
Что такое абстракция
Абстракция – это процесс, в котором объект раскрывает себя только на высоком уровне и скрывает детали своей внутренней реализации. Другие объекты, вызывающие это, не заботятся о том, как что-то реализуется, им просто нужна информация для обработки.
Думайте об этом как о небольшом наборе общедоступных методов, которые любой другой класс может вызывать, не зная, как они фактически реализуются за кулисами.
Возьмем, к примеру, сотовый телефон, изображенный на картинке выше. Мы не знаем, как кнопки на телефоне делают то, что они делают, мы просто знаем, что они это делают.
Что такое полиморфизм
Полиморфизм означает что-то, происходящее во множестве различных форм. Он позволяет получать доступ к объектам разных типов через один и тот же интерфейс, причем каждый тип реализует свою собственную независимую версию этого интерфейса.
Звезда, круг и прямоугольник – все это фигуры, это просто разные типы фигур. Все они имеют методы calculateSurface () и calculatePerimeter (). Разница в том, как они на самом деле производят этот расчет.