Характеристики объектно-ориентированного программирования (ООАиП ООП Объектно ориентированное мышление и программирование)

Характеристики объектно-ориентированного программирования
Объекты.
Мышление в терминах объектов более свойственно мышлению человека, чем мышление функциями. Причинное этому служит то, что объекты схожи с объектами реального материального мира, в месте с тем более наглядны.
В качестве объектов можно представлять: предметы (здания, запасные части, строительные материалы и т.д.), структуры данных (массивы, строки, списки и т.д.), элементы графического управления (кнопки, области введении текста, меню, окна), используемое оборудования (принтер, клавиатура, мышь), компановки данных (списки, словари, энциклопедии и т.д.), люди (студенты, сотрудники, клиенты и т.д.), разработанные программистом типы данных и т.д.
При проектировании программы, сделует разбить реальный мир на объекты, каждый из которых можно будет по отдельности запрограммировать в составе программы.
Классы.
При моделировании объекто реального мира в процессе написания кода, они как правило выступают экземплярами классов. Если нам необходимо смоделировать например сотню студентов, то проще создать класс студентов, который бы включал в себя признака (поля) и умения (методы) каждого студента – их общие характеристики, свойственные всем. Уже при создании экмепляров класса для каждо студента конкретно можно будет занести в поля класса их индивидуальные особенности.
Хорошим пример в этом случае будет например музыкальный центр фирмы Sony конкретный модели, он у всех пользователей совершенно одинаковый, но настройки тумблеров и кнопок, радио частота и вствленный в дискод диск с музыкой, на определенный момент будет определена для каждого музыкального центра индивидуально.
Класс студента например, может иметь в качестве полей переменные: имя, фамилия, отчество, курс, рост, пол, вес. Компьютер может иметь в качестве полей переменные: частота процессора, объем жесткого диска, объем оперативной памяти и т.д. Уровень детализации при моделировании и программирование, программист определяет сам, такой сложности, какая необходима для эффективного решения задачи и позволяет оборудование.
Домашнее задание: Придумать и привести в качестве примера 3 соотношения класс – экземпляр класса (по 1 абзацу текста).
Наследование.
Одной из важнешей особенносте ООП, которое позволяет значительно сэкономить рабочее время программиста явлется, такая возможность как наследование. Наследование позволяет взять любой класс, и заимствовать из него все поля и методы, то есть все его возможности в свой класс. Кроме полей и методов класса из которого мы их заимствовали (родительский класс) мы може дописать свои в составе своего класса. При этом родительский класс, остается неизменным и нетронутым, как следствие не требует тестирования на наличие ошибок.
Существует закон для инженеров и разработчиков, который гласит: «Открыл устрйоство или программныей код, значит уже слома – это значит, что его нужно заново проверять на наличие ошибок и работоспособность». При использовании наследования мы хоть и заимствует все внутренности моделируемого устройства и программный код, но при это не залазеем внутрь его и соотвестсвенно этот закон к нам не применим.
Класс родитель иногда называют базовым классом. А класс наследник производным.
Соотношение класс родитель – класс потомок является принципиальной отличным по смыслу и плоскости применения рассмотренному соотношению объект-класс.
Примером наследования может служить изучаема в школе эволюция животного мира. Например все живые существа можно разделить на бактерии, грибы, растения, животные. Например животные все обладают схожими признаками: способность к движению, потребление кислорода и выделение углекислого газа и т.д. Животные в свою очередь делятся на млекопитающие, хладнокровные и др. Млекопитающие обладают одинаковым свойством поддержания постоянной температуры тела.
Все перечисленный свойства в создаваемых классах при программировании эволюции являются полями (переменными). Базовым (родительским) классом для млекопитающих является класс животные. Все млекопитающие обладают признаками животных, но не все животные обдаюат признаками млекописающими. Соотвественно мы должны создать саначала класс животные, потом создать класс млекопитающие, наследовать в класс млекопитающие из класса животные все признаки и создать внутри класса животные дополнительные признаки.
Домашнее задание: Придумать и привести в качестве примера 3 соотношения класс родитель – класс потомок (по 1 абзацу текста).
Возможность повторного использования кода.
Мы один раз определили класс и его фукнкционал и можем в дальнейшем создавать столько экземпляров этого класса сколько позволяют характеристики оборудования, можем насдовать от этого класса любое необходимое количество классов.
Если обратиться к предыдущему примеру с эволюций, то можно с уверенностью сказать что описание достаточно большого количества вида животных, с разбиением на родительские классы и наследники займет значительно меньше строчек кода, за счет повторного использования полей (переменных) родительских классов, классами наследниками.
Возможность создания своих типов данных.
Каждый создаваемый в С++ класс, фактически является новым, разработанным нами типом данных.
Полиморфизм и перегрузка.
Операция сложения для целочисленных переменных и дробных выполняется на программно-машинном по разному, однако записывается одинаково. Это и есть явление полиморфизма – одинаково называющиеся функции работают по разному в зависимости от типа данных, с которыми они работают. На самом деле это конечно же разные функция, каждая из них определяется в составе своего класса, но они имеют одинаковое название и от их различности программист может абстрагироваться. А само явление использования одинаковой записи для различных функции называется перегрузкой функций.
Домашнее задание: прочитать главу 1.

Автор: к.п.н. Румянцев Сергей Александрович

← Назад в раздел