Объектно-ориентированная методология проектирования программ основана на концепциях упрятывания информации и абстрактных типов данных. Такой подход рассматривает все такие ресурсы как данные, модули и системы в качестве объектов. Каждый объект содержит некоторую структуру данных (или тип данных), обрамленную набором процедур (методов), предназначенных для манипуляции этими данными.
Большинство современных языков и систем программирования развивается в направлении все большего использования объектной методологии в создании программ. Характерными примерами являются универсальные языки Паскаль, СИ и даже Бейсик, в современных версиях которых появились средства объектно-ориентированного программирования.
Проектирование алгоритмов и программ – наиболее ответственный этап жизненного цикла программных продуктов, определяющих, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей.
Объектно-ориентированный подход к проектированию программных продуктов основан на:
Что такое ООП (объектно-ориентированное программирование)?
- выделении классов объектов;
- установлении характерных свойств объектов и методов их обработки;
- создании иерархии классов, наследовании свойств объектов и методов их обработки.
Вы уже знаете о суперспособностях современного учителя?
Тратить минимум сил на подготовку и проведение уроков.
Быстро и объективно проверять знания учащихся.
Сделать изучение нового материала максимально понятным.
Избавить себя от подбора заданий и их проверки после уроков.
Наладить дисциплину на своих уроках.
Получить возможность работать творчески.
Просмотр содержимого документа
«Объектно-ориентированное программирование. Инкапсуляция. Классы и методы. Иерархия классов.»
Исследовательская работа по информатике
Тема: Объектно-ориентированное программирование: Инкапсуляция. Классы и методы. Иерархия классов.
Учитель: Хорошевская Е.В., Леснопристанская средняя школа 2019г.
Объектно-ориентированная методология проектирования программ основана на концепциях упрятывания информации и абстрактных типов данных. Такой подход рассматривает все такие ресурсы как данные, модули и системы в качестве объектов. Каждый объект содержит некоторую структуру данных (или тип данных), обрамленную набором процедур (методов), предназначенных для манипуляции этими данными.
Большинство современных языков и систем программирования развивается в направлении все большего использования объектной методологии в создании программ. Характерными примерами являются универсальные языки Паскаль, СИ и даже Бейсик, в современных версиях которых появились средства объектно-ориентированного программирования.
Проектирование алгоритмов и программ – наиболее ответственный этап жизненного цикла программных продуктов, определяющих, насколько создаваемая программа соответствует спецификациям и требованиям со стороны конечных пользователей.
Объектно-ориентированный подход к проектированию программных продуктов основан на:
- выделении классов объектов;
- установлении характерных свойств объектов и методов их обработки;
- создании иерархии классов, наследовании свойств объектов и методов их обработки.
1.1 Каждый объект объединяет как данные, так и программу обработки этих данных и относится к определенному классу. С помощью класса один и тот же программный код можно использовать для относящихся к нему различных объектов. Объектно-ориентированный подход использует следующие базовые понятия: 1) объект; 2) свойство объекта; 3)метод обработки; 4)событие; 5)класс объектов.
Объект-это совокупность свойств (параметров) определенных сущностей и методов их обработки(программных средств). Метод-программа действия над объектом или его свойством. Событие- изменение состояния объекта. Класс- совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств. Один объект может выступать объединением вложенных в него по иерархии других объектов.
Рисунок 1- Иерархия классов
- целое;
- вещественное с плавающей точкой (если есть сопроцессор);
- дробь – рациональное число.
Рисунок 2- Классы и метаклассы.
В ряде случаев необходимо работать с объектами, обладающими свойствами пересечения некоторых классов, но не включения: Класс А не является подклассом класса В Класс В не является подклассом класса А Пересечение А и В не пусто. В таком случаи создается специальный суперкласс обоих классов, описывающий их общую часть. Этот суперкласс называют абстрактным классом. Он не создает своих экземпляров, а только служит для наследования общих методов. 1.2 Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, которые должны обеспечить выполнение важнейших принципов объектного подхода:
- инкапсуляция (замыкание свойств) данных и программ в объекте;
- наследование;
- полиморфизм.
Инкапсуляция означает сочетание структур данных с методами их обработки в абстрактных типах данных- классах объектов. Инкапсуляция. Основой решения задачи является задание положения отдельной точки на экране, описываемого координатами Х и У. для задания координат подходит тип «запись»:
Pozition = record (object) X, Y: integer; End;
Затем потребуется введение фактических значений координат. Для этого вводим две функции:
Prozedure Init(CoordX, Cory: integer); Begin X: CoordX; Y: CoordY; End;
Введение объектов позволяет зафиксировать это положение, объявив и поля, и действия над ними в единой конструкции:
Pozition = Оbject X, Y: integer; Prozedure Init(CoordX, Cory: integer); Function GetX : integer; Function GetY : integer; End;
Процедура Init и функции GetX и GetУ являются методами объекта Pozition. Для инициализации экземпляра типа Pozition достаточно вызвать его метод, как если бы он был полем записи. Метод задается так же как и процедура в модуле: внутри объекта записывается заголовок, при этом все поля, используемые методом, должны предшествовать его объявлению. Определение метода (расшифровка действий) происходит вне объявления объекта. Имя метода должно предваряться названием типа объекта, которому метод принадлежит, сопровождаемый точкой. Имена формальных параметров метода не могут совпадать с именами полей данных объекта. Также как модуль скрывает детали реализации процедур от пользователя, объект может скрывать сои поля и методы. Для этого используется ключевое слово private (личный). Личные поля и методы доступны только внутри метода. Объявление выглядит следующим образом: Tyre Оbject Name = Оbject Поле; … Поле; Метод; … Метод; Private Поле; … Поле; Метод; … Метод; End. Заключение.
Объектно-ориентированная методология проектирования программ основана на концепциях упрятывания информации и абстрактных типов данных. Такой подход рассматривает все такие ресурсы как данные, модули и системы в качестве объектов. Каждый объект содержит некоторую структуру данных(или тип данных), обрамленную набором процедур(методов), предназначенных для манипуляции этими данными. Используя эту методологию программист может свой собственный абстрактный тип и отобразить проблемную область в эти созданные им абстракции вместо традиционного отображения проблемной области в предопределенные управляющие структуры и структуры данных языка программирования. Подобный подход является более естественным, чем методологии, ориентированные на обработку, из-за возможности использовать в процессе программирования разнообразные виды абстракции типов данных. На этом пути программист может сконцентрироваться на проекте системы, не беспокоясь о деталях информационных объектов, используемых в системе.
- Зелковец М. и др. Принципы разработки программного обеспечения Мир, 1982
- Кнут Д. Искусство программирования для ЭВМ. Том 1: Основные алгоритмы. – М., СПБ, Киев,2000
- Кнут Д. Искусство программирования для ЭВМ. Том 3: Сортировка и поиск. – М., СПБ, Киев,2000
- Подбельский В.В. Язык Си++/ В.В. Подбельский. — М.: Финансы и статистика, 1990. — 560 с.
- Страуструп Б. Язык программирования Си / Б. Страуструп — М.: Радио и связь, 1991. — 352 с.
- Язык Си. Практикум для начинающих.- Усть-Каменогорск, ВКГУ, 1997. — 34 с.
- Коутс Р., Влейминк И., Интерфейс «Человек – компьютер », Мир,1990.
- Поляков Д.Б.,Круглов И.Ю. Программирование в среде Турбо- Паскаль.(версия 5.5),1992
- Йордан Э. Структурное программирование и проектирование программ.1979
- Могилев А.В., Пак Н.И., Хеннер Е.К. Информатика: учеб.пособие для студентов пед.вузов. – М.,1999.-816 с.
- Э.З.Любимский. Программирование. Учеб.пособие для вузов./Любимский Э.З., Мартынюк В.В., Трифонов Н.П. – М.:Наука, 1980.-603 с.
- Меженный О.А. Турбо Паскаль. Учитесь программировать./ компьютерное издательство «Диалектика» 2001 год.
1.1 классы; 1.2 метаклассы; 1.3 суперклассы; 1.4 подклассы. 2 Инкапсуляция ЗАКЛЮЧЕНИЕ
15
Источник: kopilkaurokov.ru
Объектно-ориентированное программирование
Метод структурного программирования оказался эффективен при написании программ «ограниченной сложности». Однако с возрастанием сложности реализуемых программных проектов и, соответственно, объема кода создаваемых программ, возможности метода структурного программирования оказались недостаточными.
Основной причиной возникших проблем можно считать то, что в программе не отражалась непосредственно структура явлений и понятий реального мира и связей межу ними. При попытке анализа и модификации текста программы программист вынужден был оперировать искусственными категориями.
Чтобы писать все более сложные программы, необходим был новый подход к программированию. В итоге были разработаны принципы объектно-ориентированного программирования.
Теоретические основы объектно-ориентированного программирования были заложены еще в 70-х годах прошлого века, но практическое их воплощение стало возможно лишь в середине 80-х, с появлением соответствующих технических средств.
Методология ООП использует метод объектной декомпозиции, согласно которому структура системы (статическая составляющая) описывается в терминах объектов и связей между ними, а поведение системы (динамическая составляющая) — в терминах обмена сообщениями между объектами. Сообщения могут быть как реакцией на события, вызываемые как внешними факторами, так и порождаемые самими объектами.
Объектно-ориентированные программы называют «программами, управляемыми от событий», в отличие от традиционных программ, называемых «программам, управляемыми от данных».
Основные методы и концепции ООП:
· метод объектно-ориентированной декомпозиции – заключается в выделении объектов и связей между ними. Метод поддерживается концепциями инкапсуляции, наследования и полиморфизма.
· метод абстрактных типов данных – метод, лежащий в основе инкапсуляции. Поддерживается концепцией абстрактных типов данных.
· метод пересылки сообщений – заключается в описании поведения системы в терминах обмена сообщениями между объектами. Поддерживается концепцией сообщения.
Вычислительная модель чистого ООП поддерживает только одну операцию – посылку сообщения объекту. Сообщения могут иметь параметры, являющиеся объектами. Само сообщение тоже является объектом.
Основные понятия.
Объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств). Объект обладает качественной определенностью, что позволяет выделить его из множества других объектов и обусловливает независимость создания и обработки от других объектов.
Свойство – характеристика объекта, его параметр. Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов
Метод – программа действий над объектом или его свойствами.
Метод рассматривается как программа, связанная с определенным объектом, осуществляющая преобразование свойств, изменяющая поведение объекта.
Объект может обладать набором заранее определенных встроенных методов обработки, либо созданных пользователем или заимствованных в стандартных библиотеках, которые выполняются при наступлении заранее определенных событий. Например, однократное нажатие левой кнопки мыши, вход в поле ввода, выход из поля ввода, нажатие определенной клавиши и т.п. Создаются стандартные библиотеки, в состав которых включаются типизированные методы обработки объектов определенного класса.
Событие – изменение состояния объекта происходит в момент совершения события, которое инициирует действие программы. Внешние события генерируются пользователем (например, клавиатурный ввод или нажатие кнопки мыши, выбор пункта меню, запуск макроса). Внутренние события генерируются системой.
Объекты могут объединяться в классы.
Класс – совокупность объектов, характеризующаяся общностью применяемых методов обработки или свойств.
Один объект может выступать объединением вложенных в него по иерархии других объектов. Схематично связь основных понятий объектно-ориентированного программирования представлена на рисунке.
У каждого объекта есть ссылка на класс, к которому он относится. При приеме сообщения объект обращается к классу для обработки данного сообщения. Сообщение может быть передано вверх по иерархии наследования, если сам класс не располагает методом для его обработки. Если обработчик событий для сообщения выбирается динамически, то методы, реализующие обработчиков событий, принято называть виртуальными.
В объектно-ориентированном программировании определяют три основных принципа:
· инкапсуляция. Это сокрытие информации и комбинирование данных и функций (методов) внутри объекта;
· наследование. Построение иерархии порожденных объектов с возможностью для каждого такого объекта-наследника доступа к коду и данным всех порождающих объектов-предков. Построение иерархий является достаточно сложным делом, так как при этом приходится выполнять классифицирование;
· полиморфизм (полиморфизм включения) — присваивание действию одного имени, которое затем разделяется вверх и вниз по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, подходящим именно ему.
Взаимодействие задач в данной методологии осуществляется при помощи обмена сообщениями между объектами, реализующими данные задачи.
В процессе объектно-ориентированного анализа:
· осуществляется идентификация объектов и их свойств;
· устанавливается перечень операций (методов обработки), выполняемых над каждым объектом, в зависимости от его состояния (событий);
· определяются связи между объектами для образования классов;
· устанавливаются требования к интерфейсу с объектами.
Выделяют следующие этапы объектно-ориентированного проектирования:
· разработка структуры классов, описывающей связь между классами и объектами;
· разработка диаграмм объектов, показывающие взаимосвязи с другими объектами;
· разработка внутренней структуры программного продукта.
Для поддержки концепции объектно-ориентированного программирования были разработаны специальные объектно-ориентированные языки программирования. Все эти языки можно разделить на три группы:
· чистые языки, в наиболее классическом виде поддерживающие объектно-ориентированную методологию. Такие языки содержат небольшую языковую часть и существенную библиотеку, а также набор средств поддержки времени выполнения;
· гибридные языки, которые появились в результате внедрения объектно-ориентированных конструкций в популярные императивные языки программирования;
· урезанные языки, которые появились в результате удаления из гибридных языков наиболее опасных и ненужных с позиций ООП конструкций.
Программный продукт, созданный с помощью инструментальных средств объектно-ориентированного программирования, содержит объекты с их характерными свойствами, для которых разработан графический интерфейс пользователя. Как правило, работа с программным продуктом осуществляется с помощью экранной формы, содержащей объекты управления, которые содержат методы обработки, вызываемые при наступлении определенных событий. Экранные формы также используются для выполнения заданий и перехода от одного компонента программного продукта к другому. Каждый объект управления обладает определенными свойствами, значения которых могут изменяться. Для объектов управления уточняется перечень событий и создаются пользовательские методы обработки – программный код на языке программирования в виде событийных процедур.
Контрольные вопросы
1. Дайте определение понятий «программа», «программный продукт», «программный комплекс».
2. Дайте определение понятий «методология программирования», «технология программирования».
3. Дайте определение понятий «процесс», «стадия».
4. Охарактеризуйте методологию императивного программирования.
5. Охарактеризуйте методологию модульного программирования.
6. Охарактеризуйте методологию структурного программирования.
7. Охарактеризуйте методологию объектно-ориентированного программирования.
Источник: megaobuchalka.ru
Программа действий над объектом или его свойствами это
webkonspect.com — сайт, с элементами социальной сети, создан в помощь студентам в их непростой учебной жизни.
Здесь вы сможете создать свой конспект который поможет вам в учёбе.
Чем может быть полезен webkonspect.com:
- простота создания и редактирования конспекта (200 вопросов в 3 клика).
- просмотр конспекта без выхода в интернет.
- удобный текстовый редактор позволит Вам форматировать текст, рисовать таблицы, вставлять математические формулы и фотографии.
- конструирование одного конспекта совместно с другом, одногрупником.
- webkonspect.com — надёжное место для хранения небольших файлов.
Обзор сайта:
Источник: webkonspect.com