Объектно-Ориентированное Программирование для Чайников


Что такое классы и объекты в ООП?
Август 1, 2016 – 11:45
чайников программирование

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

Эпоха динозавров без классов и объектов

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

Есть, к примеру, в базе некоторое количество автомобилей, у которых куча общих параметров. Пытаясь чего-то напрограммировать с этими данными, очень неудобно заводить на каждый параметр (количество дверей, объём движка, марка и т.д.) свою отдельную ветвь переменных. Поэтому прямые ручки почесали умные головы и выдали комбинированный тип данных: «структуры» или «записи».

В разных языках и пособиях можно встретить оба названия, но смысл один: собрать под одной крышей данные, характеризующие что-то общее.

Тип данных: Колесо { переменная резина: Резина; переменная диск: Диск; } Тип данных: Автомобиль { переменная число_дверей: Целое_число; переменная объем_двигателя: Вещественное_число; переменная марка: Строка; переменная модель: Строка; переменная колесо: Колесо; ... }

Из псевдокода выше можно заметить, что структура может в себя включать как простые поля, так и другие, ранее определённые, структуры, что очень удобно. К тому же создав переменную (или массив переменных) «авто» типа «Автомобиль» мы получаем все параметры в одном флаконе и можем писать под это дело функционал, которому на вход подается только одно «авто», а не куча разрозненных данных, связь между которыми существует только в головах разработчиков (а к последним компьютер прямого доступа пока не имеет, и слава богу!).

Основная идея классов, объектов и ООП в целом

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

Одновременное почёсывание большого числа лохматых голов дало нехилый заряд статического электричества и у кого-то проскочила дельная искра: добавить в структуры поведенческий аспект. То есть, создать такую концепцию, при которой структурный тип не только содержал бы в себе все свои данные, но и сам бы с ними работал: загружал, сохранял, изменял и т.д.

Source: avolberg.ru
Похожие публикации