ООП (объектно-ориентированное программирование) — один из подходов в программировании, которые упрощают труд разработчика. В его основе лежат объекты и данные. Объектно-ориентированное программирование — это не отдельный язык, оно объединяет методы, которые делают код более гибким. Использование ООП также экономит время. В качестве парадигмы для обучения подходит даже чайникам, которые только начинают изучать структуру программного кода. В статье рассмотрим особенности ООП, его структуру и принципы.
- Основные принципы ООП
- Классы и объекты
- Инкапсуляция
- Наследование
- Полиморфизм
Основные принципы ООП
ООП — аббревиатура с понятной расшифровкой: это объектно-ориентированное программирование. Концепция ООП начала формироваться еще в 60-х годах прошлого века, с появлением языка программирования Simula. Тогда разработчики должным образом не оценили потенциал ООП, но методология продолжила развиваться.
В девяностые термин начал набирать популярность, а с появлением Java объектно-ориентированное программирование стало представлять интерес для разработчиков со всего мира. Введение в теорию этого метода стало популярным предметом среди студентов.
Рассмотрим физический предмет — лампочку. У нее есть два возможных состояния: включена и выключена. Лампочка также имеет функциональность. Можно изменять состояние предмета: включать и выключать его. При этом не обязательно разбираться в технике и электронике, чтобы пользоваться лампой. Нужно лишь знать, как ее использовать.
Object-oriented programming строится на объектах и классах. Помимо них, есть методы и атрибуты. Благодаря всему этому код становится простым для понимания, гибким и модульным. Это делает его еще более удобным при создании сложных программ.
Классы и объекты
Класс — это тип данных, который служит основой для объектов, атрибутов и методов. Его определяет пользователь. Объект считается частью класса. Он может содержать в себе дополнительные свойства и данные.
Можно представить класс как проект архитектора по строительству дома. Класс в ООП будет чертежом для создания дома. Проект архитектора определяет планировку и внешний вид дома. Аналогично класс определяет структуру объекта.
Еще один хороший пример — класс как рецепт. Кулинарный рецепт содержит информацию о том, какие ингредиенты использовать, как их готовить и как долго это делать. Класс также несет в себе данные о свойствах объекта, его поведении и функциях.
Методы находятся внутри класса и описывают поведение объекта. Они нужны для повторного использования частей кода. Атрибуты определены в шаблоне класса и представляют состояние объекта. В нем содержат данные, хранящиеся в поле атрибута.
Помимо этого, в ООП есть принципы. Это основы, которые обязательно нужно знать, чтобы писать код.
Инкапсуляция
Она нужна для повышения уровня безопасности. Инкапсуляция связывает все данные вместе, но сведения, необходимые для работы выбранного объекта, находятся только внутри него. Изменить данные или повредить их не получится, если доступ есть только к другим классам. Пользователь видит лишь значения атрибутов и то, как были выполнены методы.Наглядный пример работы этой функции — отдел кадров. Его сотрудники инкапсулируют (скрывают) данные о работниках компании. Они следят за тем, как эти данные будут использоваться, собирают их и хранят. Любой запрос данных работника или запрос на обновление информации должен маршрутизироваться через них.
Наследование
Позволяет классам наследовать функции других классов. Можно классифицировать всех собак по определенным общим характеристикам — например, по четырем лапам. Породы классифицируют их на подгруппы с общими признаками — размер и цвет. Помимо этого у каждой собаки может быть своя особенность — короткая шерсть, возраст. Так объекты могут иметь характеристики разных классов.
Наследование в ООП необходимо для классификации объектов по общим характеристикам и производительности. Это упрощает работу с ними, поскольку позволяет смешивать общие характеристики с родительским объектом и наследовать эти характеристики.
Полиморфизм
С помощью полиморфизма несколько классов могут использовать одно и то же имя метода. При этом действия будут разными. Возможность повторного использования уменьшает количество избыточного кода и упрощает его обслуживание.
Примеры полиморфизма:
- женщина — дочь для своего отца. При этом она же — врач на работе и мать для своего ребенка;
- мужчина — учитель, дома он — муж и отец, а в аптеке — просто покупатель;
- медиаплеер может воспроизводить видео, аудио. С помощью полиморфизма можно создать суперкласс для всех медиафайлов и использовать его для выполнения различных функций.