Рано или поздно в жизни каждого программиста появляется такой термин, как объектно-ориентированное программирование или ООП. Почему же оно так популярно, в чём его преимущества и зачем хорошему специалисту необходимо понимать что это такое?
Что такое ООП и для чего оно нужно?
Объектно-ориентированное программирование – один из подходов к разработке программы, основанный на использовании четырёх основных элементов: объект, класс, метод и атрибут, а также четырёх принципов. Что означает каждый из этих терминов? Давайте разберёмся и посмотрим примеры на языке C#.
Класс
Класс – «шаблон» объекта, в котором хранятся его атрибуты (характеристики) и методы (функции). К примеру класс «Автомобиль». У него есть характеристики: марка, модель, мощность, объем двигателя, цвет, тип кузова и тому подобные. Методами этого объекта могут быть: возможность разогнаться, затормозить, повернуть в нужную сторону и так далее.
Объект
Объект – экземпляр класса, содержащий свои характеристики и функции. Объектом класса может быть автомобиль марки «Chevrolet» модели «Lacetti» с мощностью в 94 л.с, объёмом двигателя 1.4 литра, красного цвета и с кузовом типа «Хэтчбек». Функции у этого автомобиля: езда вперёд, назад и повороты влево и вправо.
Атрибут
Атрибут – переменная, находящаяся в классе и описывающая характеристику объекта.
Метод
Метод – функция, принадлежащая классу или нескольким классам, позволяющая задать модель поведения объекта.
Вот что мы можем наблюдать после запуска программы:
Принципы объектно-ориентированного программирования
В ООП есть 4 основных принципа:
· Инкапсуляция
· Наследование
· Полиморфизм
· Абстракция
Давайте по порядку.
Инкапсуляция
Инкапсуляция – защита полей класса от внешнего изменения путём сокрытия этих полей объекта внутри класса. Помимо этого, инкапсулирование позволяет использовать метод класса, не вникая в механизм его работы. За счёт этого эффективность возрастает, из-за того, что пользователю необязательно знать, как работает тот или иной метод для того, чтобы использовать его. Простой пример: у нас есть класс с большим количеством методов. Один из методов позволяет вывести наше имя или другую информацию. Нам не нужно знать, как он это делает. Главное, что он выводит информацию по нашей команде.
Наследование
Наследование – свойство системы использовать атрибуты и методы имеющегося класса для создания нового, более совершенного класса. Класс, от которого наследуются методы и атрибуты называют родительским. Наследующий класс именуют дочерним. Пример наследования: в нашем распоряжении есть класс «Автомобиль», у которого есть такие атрибуты как марка, модель и мощность двигателя. Нам необходимо создать класс «Грузовики». Чтобы не прописывать заново марку, модель и мощность мы можем унаследовать класс «Грузовики» от класса «Автомобиль» в котором уже есть нужные атрибуты. Однако, помимо этих атрибутов, нам необходимы ещё тип перевозимого груза и максимально допустимый вес. Всё это мы можем прописать в нашем дочернем классе, и данные атрибуты будут доступны только ему.
Полиморфизм
Полиморфизм – возможность метода класса работать с разными типами данных. Давайте снова обратимся к примеру. Существует класс «Арифметические операции», в котором есть метод, позволяющий сложить два числа. Этот класс может работать как с целочисленными данными типа Integer, так и с числами с плавающей запятой типа Float. Как это реализовывается? Метод прописывается несколько раз, при этом, передаваемые внутрь этого метода типы данных различаются. Также с помощью полиморфизма можно реализовать разное поведение методов в зависимости от класса, в котором он используется.
Абстракция
Абстракция – использование только тех характеристик объекта, которые необходимы для решения конкретной задачи и отбрасывание данных, которые не играют роли при решении этой задачи. Например, при использовании компьютера мы не задумываемся, как работает процессор, сколько оперативной памяти задействовано или какая на данный момент температура у видеокарты. Мы просто нажимаем на кнопки клавиатуры и мыши, и смотрим на картинку, которую выдаёт нам монитор.
Эта статья – лишь капля в море объектно-ориентированного программирования. ООП различается в зависимости от выбранного языка программирования, однако, структура и предназначение одно – обеспечить хорошую читаемость кода, возможность легко исправить какую-то часть, увеличить скорость создания программы и снизить количество повторений. Практически все крупные программы написаны с использованием парадигмы ООП. Именно поэтому, чтобы стать хорошим специалистом в сфере IT необходимо знать и понимать принципы объектно-ориентированного программирования, а также умение использовать их при разработке.
Если вам понравилась моя работа – пишите в комментарии, что бы вы хотели ещё увидеть, а также подписывайтесь! Благодарю за прочтение и желаю доброго времени суток, дорогой читатель!