Тема_Технологии программирования и ООП
.pdfКафедра |
Тема |
|
Кафедра |
|
ТЕХНОЛОГИИ ПРОГРАММИРОВАНИЯ |
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
|
УГАТУ |
||
|
|
|
|
|||
|
|
|
|
|
|
|
• |
Технологии программирования |
|
Технологией программирования называют совокупность |
|||
|
методов и средств, используемых в процессе |
|
||||
|
|
|
|
|||
• |
Объектно-ориентированное |
|
разработки программного обеспечения. |
|
||
|
|
|
|
|
||
|
программирование |
|
Основные этапы развития технологии программирования: |
|||
|
|
|
I. «Cтихийное» программирование (от появления первых |
|
||
|
|
|
вычислительных машин до середины 60-х годов XX в). |
|
||
|
|
|
II. Cтруктурное программирование (60-70-е годы XX в.). |
|
||
|
|
|
III. Объектно-ориентированное программирование (с середины |
|||
|
|
|
80-х до конца 90-х годов ХХ века). |
|
||
|
|
|
IV. Компонентный подход к программированию и CASE- |
|
||
|
|
|
технологии (с середины 90-х годов XX до нашего времени). |
|||
|
|
|
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
2 |
Кафедра |
«Cтихийное» программирование |
|
Кафедра |
|
«Cтихийное» программирование |
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
|
УГАТУ |
||
|
|
|
|
|
||
«Стихийное» программирование. Первый этап развития |
|
Создание языков программирования высокого уровня, таких, |
||||
|
как FORTRAN и ALGOL, существенно упростило |
|
||||
технологии программирования от появления первых |
|
|
||||
|
программирование, это позволило увеличить сложность |
|
||||
вычислительных машин до середины 60-х годов XX в. |
|
|
||||
|
программ. |
|
||||
Первые программы имели простейшую структуру. Они |
Типичная программа того времени состояла из основной |
|
||||
состояли из собственно программы на машинном языке и |
|
|||||
программы, области глобальных данных и набора |
|
|||||
обрабатываемых ею данных. |
|
подпрограмм (в основном библиотечных), выполняющих |
||||
|
|
|
обработку всех данных или их части. |
|
||
|
Структура первых программ: |
|
|
|
|
|
|
|
|
|
Архитектура программы с |
|
|
|
|
|
|
глобальной областью данных: |
|
|
Появление Aссемблеров позволило вместо двоичных или 16-ричных |
|
|
|
|
||
кодов использовать символические имена данных и мнемоники кодов |
|
|
|
|
||
операций. В результате программы стали более «читаемыми». |
|
|
|
|
|
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
3 |
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
4 |
Кафедра |
|
Кафедра |
|
информатики«Cтихийное» программирование |
|
информатики Cтруктурное программирование |
|
УГАТУ |
|
УГАТУ |
|
Чтобы сократить количество искажений части глобальных |
|
Структурный подход к программированию. Второй этап |
|
данных, в подпрограммах стали размещать локальные |
|
развития технологии программирования – 60-70-е годы XX |
|
данные. |
|
в., в основе которого лежит декомпозиция (разбиение на |
|
|
|
части) сложных систем с целью последующей реализации в |
|
Архитектура программы |
|
виде отдельных небольших (до 40-50 операторов) |
|
использующей подпрограммы с |
|
подпрограмм. |
|
локальными данными: |
|
При таком подходе задача представляется в виде иерархии |
|
|
|
||
|
|
подзадач простейшей структуры. Проектирование |
|
|
|
осуществляется «сверху вниз» и подразумевает реализацию |
|
|
|
общей идеи, обеспечивая проработку интерфейсов |
|
|
|
подпрограмм (нисходящее проектирование). |
|
На этом этапе «стихийного» программирования вначале проектировали и |
|
Поддержка принципов структурного программирования была |
|
реализовывали сравнительно простые подпрограммы, из которых затем |
|
||
|
заложена в основу так называемых процедурных языков |
|
|
пытались построить сложную программу, т.е. использовался подход «снизу- |
|
||
программирования |
|
||
вверх» (восходящее проектирование). Интерфейсы подпрограмм |
|
|
|
получались сложными, и при сборке программного продукта выявлялось |
(Фортран, Алгол, Кобол, PL/I, Basic, Pascal , Си). |
|
|
большое количество ошибок согласования. |
|
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
5 |
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
6 |
Кафедра |
|
Кафедра |
|
информатики Cтруктурное программирование |
|
информатики Cтруктурное программирование |
|
УГАТУ |
|
УГАТУ |
|
Дальнейший рост сложности и размеров |
|
Связи между |
|
разрабатываемого программного обеспечения |
|
|
|
|
модулями при |
|
|
потребовал развития структурирования данных, в |
|
|
|
|
использовании данной |
||
языках появляется возможность определения |
|
||
|
технологии |
|
|
пользовательских типов данных. |
|
осуществляются через |
|
Стремление разграничить доступ к глобальным данным |
|
специальный |
|
программы, привело к возникновению технологии |
|
интерфейс, в то время |
|
модульного программирования. |
|
как доступ к |
|
|
реализации самого |
||
Модульное программирование предполагает выделение |
|
||
|
модуля (телам |
|
|
групп подпрограмм, использующих одни и те же |
|
|
|
|
подпрограмм и |
|
|
глобальные данные, в отдельно компилируемые модули |
некоторым |
|
|
(библиотеки подпрограмм), например, модуль |
|
«внутренним» |
|
графических ресурсов, модуль подпрограмм вывода на |
переменным) |
|
|
принтер и т.п. |
|
запрещен. |
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
7 |
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
8 |
Кафедра |
Структурное программирование |
|
Кафедра |
|
|
||
информатики |
|
информатики |
|
|
|||
|
|
|
Объектно-ориентированное программирование |
||||
|
|
|
УГАТУ |
|
|
УГАТУ |
|
В основу структурного программирования были положены три вида |
|
Объектный подход к программированию. Третий этап |
|
||||
|
вычислительного процесса: линейный, разветвленный и циклический, |
|
|||||
|
развития технологии программирования – с |
|
|||||
|
которые реализуются в программах с помощью шести конструкций: |
|
|||||
|
середины 80-х до конца 90-х годов ХХ века. |
|
|||||
- |
Следование: последовательное выполнение действий; |
|
|
||||
|
|
|
|
||||
- |
Ветвление: выбор одного из двух вариантов действий; |
|
Объектно-ориентированное программирование |
|
|||
- |
Выбор: выбор одного варианта из нескольких в зависимости |
|
определяется как технология создания сложного |
|
|||
|
программного обеспечения, основанная на |
|
|||||
|
от значения некоторой величины; |
|
|
||||
- Цикл – «Пока»: повторение действий, пока не будет нарушено |
|
представлении программы в виде совокупности |
|
||||
|
некоторое условие, выполнение которого проверяется в начале цикла; |
объектов, каждый из которых является экземпляром |
|
||||
- Цикл – «Дo»: повторение действий цикла до выполнения заданного |
определенного типа (класса), а классы образуют |
|
|||||
иерархию с наследованием свойств. |
|
||||||
|
условия, проверка которого осуществляется после выполнения |
|
|
||||
|
действий в цикле; |
|
Взаимодействие программных объектов в такой |
|
|||
- Цикл с заданным числом повторений (цикл с параметром, цикл со |
|
||||||
системе осуществляется путем передачи сообщений. |
|||||||
|
счетчиком): повторение некоторых действий указанное количество раз. |
||||||
Структурное программирование называют еще «программирование без go to». |
|
|
|
||||
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
9 |
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
10 |
|
Кафедра |
|
|
Кафедра |
Компонентный подход |
|
||
информатики |
|
|
информатики |
|
|||
|
Объектно-ориентированное программирование |
|
|
||||
|
|
|
УГАТУ |
|
|
УГАТУ |
|
Основным достоинством объектно- |
|
Компонентный подход и CASE-технологии. Четвертый |
|
||||
ориентированного программирования |
|
этап развития технологии программирования – |
|
||||
по сравнению с модульным является |
|
(с середины 90-х годов XX до нашего времени) |
|
||||
«более естественная» декомпозиция |
|
|
|||||
|
предполагает построение программного обеспечения |
||||||
программного обеспечения. |
|
||||||
|
из отдельных компонентов – физически отдельно |
|
|||||
Объектный подход предлагает новые |
|
|
|||||
|
существующих частей программного обеспечения, |
|
|||||
способы организации программ, |
|
|
|||||
основанные на механизмах |
|
которые взаимодействуют между собой через |
|
||||
наследования, полиморфизма, |
|
стандартизованные интерфейсы. |
|
||||
инкапсуляции, которые позволяют |
|
|
|
|
|||
конструировать сложные объекты из |
|
В отличие от обычных объектов объекты-компоненты |
|
||||
сравнительно простых. |
|
можно собрать в динамически вызываемые |
|
||||
|
|
|
|
|
|||
|
|
|
|
библиотеки или исполняемые файлы, распространять |
|||
|
|
Архитектура программы при ООП: |
|
их в двоичном виде (без исходных текстов) и |
|
||
|
|
|
|
использовать в любом языке программирования, |
|
||
Object Pascal (Delphi), C++ , Visual Basic, |
|
поддерживающем соответствующую технологию. |
|
||||
Java |
|
|
|
|
|
||
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
11 |
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
12 |
Кафедра |
|
|
Кафедра |
|
Объекты Windows |
|
информатики |
|
информатики |
|
|||
|
|
УГАТУ |
|
|
УГАТУ |
|
Основные понятия объектно- |
|
В ОС Windows приложения, папки, документы, окна, кнопки, |
|
|||
|
и др. рассматриваются как объекты. |
|
||||
|
ориентированного |
|
Все объекты имеют определенные свойства, и над ними могут |
|||
|
программирования |
|
проводиться определенные операции. Например, |
|
||
|
|
документы имеют определенный объем, их можно |
|
|||
|
|
|
копировать, перемещать, переименовывать. Окна имеют |
|
||
|
|
|
размеры, которые можно изменять. Папки можно открыть, |
|||
|
|
|
копировать, переносить, переименовывать. |
|
||
|
|
|
Хотя каждый из этих объектов имеет разные свойства, и с |
|
||
|
|
|
ними можно производить различные действия, технология |
|||
|
|
|
работы с объектами и интерфейс универсальны. Это |
|
||
|
|
|
позволяет пользователю достичь единообразия при работе |
|||
|
|
|
с разными объектами. |
|
||
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
13 |
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
14 |
Кафедра |
|
|
Кафедра |
|
|
|
информатики |
|
информатики |
|
|
||
|
Основные компоненты (объекты) Windows |
УГАТУ |
|
Основные компоненты (объекты) Windows |
УГАТУ |
|
|
|
|
|
|
||
Компоненты (элементы управления) – стандартные |
|
Диалоговые окна. (DialogBox, Dialog) Используются для проведения |
||||
объекты, используемые ОС для ввода разного рода |
|
настроек и задания различных параметров. В диалоговых окнах |
|
|||
информации. |
|
содержатся разнообразные элементы управления. |
|
|||
|
|
|
|
|
||
Меню (Menu). Меню представляет собой перечень команд, из |
Вкладки (Tab). В диалоговом окне может быть |
|
||||
так много элементов управления, что они в |
|
|||||
|
|
|
|
|||
которых необходимо сделать выбор. Выбор команды |
|
нем не помещаются. В таких случаях окно |
|
|||
осуществляется кнопкой мыши и щелчком. |
|
составляют из нескольких страниц-вкладок. У |
|
|||
Все меню обладают общими свойствами: могут иметь |
|
вкладок есть корешки. Чтобы открыть другую |
|
|||
|
страницу диалогового окна, надо просто |
|
||||
несколько уровней (меню, подменю), могут иметь |
|
|
||||
|
щелкнуть на ее корешке левой кнопкой мыши. |
|
||||
недоступные для выполнения пункты (блеклые), могут иметь |
|
|||||
|
|
|
|
|||
пункты, при выборе которых открываются диалоговые окна |
|
|
|
|
||
(эти пункты имеют названия, которые оканчиваются |
|
Надпись (Label). Обычное текстовое сообщение, которое пользователь |
||||
многоточием). |
|
может прочитать, но не может изменить. Сама надпись ничем не |
|
|||
|
|
|
управляет, но помогает пользователю управлять программой. |
|
||
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
15 |
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
16 |
Кафедра |
|
|
|
|
Кафедра |
|
|
|
|
информатики |
|
|
|
информатики |
|
|
|
||
|
Основные компоненты (объекты) Windows |
УГАТУ |
|
Основные компоненты (объекты) Windows |
УГАТУ |
||||
Командная кнопка (Button). При ее нажатии исполняется некая |
Окна. Существуют два типа окон – окна приложений и окна |
|
|||||||
|
команда. Для работы с кнопками используют мышь. |
|
документов. |
|
|
|
|||
Стандартные командные кнопки. Автор программы может |
|
В окнах приложений выполняются любые запущенные на |
|
||||||
|
создавать любые командные кнопки, но есть несколько |
|
выполнение программы. Открыть или закрыть окно |
|
|||||
|
общепринятых кнопок: OK (для ввода сделанных настроек и |
приложений – то же, что запустить программу на выполнение |
|||||||
|
закрытия диалогового окна), ПРИМЕНИТЬ (чтобы сохранить |
или завершить ее. Эти окна можно перемещать, сворачивать |
|||||||
|
настройки, но не закрывать окно), ОТМЕНА ( для отмены |
|
и разворачивать. |
|
|
||||
|
всех сделанных настроек и закрытия окна). |
|
Окна документов предназначены для работы с документами |
||||||
|
|
|
|
|
|||||
|
|
|
|
|
и «живут» внутри окон приложений. Их также можно |
|
|||
|
|
|
|
|
раскрывать, закрывать, сворачивать, перемещать, но они |
|
|||
|
|
|
|
|
всегда остаются в пределах окна своего приложения. Окно |
||||
|
|
|
|
|
документа всегда содержит заголовок (имя документа), а |
|
|||
|
|
|
|
|
также часто полосы прокрутки и линейки. |
|
|||
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, |
семестр 1, 2009 г. |
17 |
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, |
семестр 1, 2009 г. |
18 |
Кафедра |
|
|
|
|
Кафедра |
|
|
|
|
информатики |
|
|
|
информатики |
|
|
|
||
|
Основные компоненты (объекты) Windows |
УГАТУ |
|
Основные компоненты (объекты) Windows |
УГАТУ |
||||
|
|
|
|
|
|
|
|
||
Поле ввода (TextBox). Позволяет вводить текстовую информацию. |
|
Флажки (Checkbox). Это элементы управления, имеющие два состояния |
|||||||
Этот элемент управления называют текстовым полем. |
|
||||||||
|
(галочка – флажок включен). Они позволяют пользователю делать |
|
|||||||
|
|
|
|
|
|
||||
|
|
|
|
|
нужный выбор параметров. |
|
|
||
|
|
|
|
|
Флажки можно использовать группами, |
|
|
||
Списки (ListBox) представляют собой набор |
|
тогда они позволяют выбрать несколько |
|
|
|||||
предлагаемых на выбор значений. |
|
|
вариантов из одного списка. |
|
|
||||
|
|
|
|
|
|
|
|||
Раскрывающийся список (ComboBox). Список, у которого есть |
|
Переключатели (Option). Похожи на флажки, тоже имеют |
|
||||||
раскрывающая кнопка (в виде треугольной стрелочки). Если по ней |
|
два состояния – включено, выключено. Но один из |
|
||||||
щелкнуть, раскроется список, в котором выбирается нужное значение. |
переключателей включен всегда. Когда включается |
|
|||||||
Списки делают раскрывающимися исключительно |
|
другой переключатель, предыдущий выключается. |
|
||||||
для компактности. |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||
Кнопки счетчика. Данные в текстовые поля обычно вводят с помощью |
|
|
|
|
|
||||
клавиатуры, но если это числовые данные, то удобно пользоваться |
Контекстное меню. Вызывается правой кнопкой мыши, содержит |
|
|||||||
кнопками счетчика. Это пара кнопок в виде стрелок. Щелчок по верхней |
команды, относящиеся именно к тому объекту, на котором произошел |
||||||||
кнопке увеличивает, а по нижней – уменьшает значение. |
|
||||||||
|
щелчок. |
|
|
|
|||||
|
|
|
|
|
|
|
|
||
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, |
семестр 1, 2009 г. |
19 |
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, |
семестр 1, 2009 г. |
20 |
Кафедра |
|
|
Кафедра |
Объекты Windows |
|
информатики |
|
информатики |
|
||
|
Основные компоненты (объекты) Windows |
УГАТУ |
|
УГАТУ |
|
Движок (ползунок) (Slider). Позволяет плавно изменять значение |
В программировании дружественными по отношению к |
|
|||
пользователю называют программы, которые просты в |
|
||||
параметра (например громкость) при нажатой левой кнопке |
|
||||
работе и понятны с первого взгляда. |
|
||||
|
|
|
Работая с такими приложениями, пользователь может |
|
|
Полоса прокрутки (Scrollbar). Если в окне содержится так много |
предугадать, что будет, если он выполнит то или иное |
|
|||
действие, например, щелкнет по какой-нибудь кнопке. |
|
||||
данных, что они в него не помещаются, в окне образуются |
Простейшая дорога к дружественному программированию |
|
|||
полосы прокрутки, с помощью которых можно «прокручивать» |
|
||||
лежит через стандартизацию. |
|
||||
содержимое окна. |
|
|
|||
|
Если все программы имеют одинаковые элементы управления, |
||||
|
|
|
|||
|
|
|
то пользователи, освоившие одну программу, могут легко |
|
|
|
|
|
осваивать и другие. |
|
|
|
|
|
Для создания пользовательского интерфейса современных |
|
|
|
|
|
Windows-приложений используются выше перечисленные |
||
|
|
|
компоненты – объекты Windows. |
|
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
21 |
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
22 |
Кафедра |
Объектно-ориентированное |
|
Кафедра |
ООП |
|
информатики |
|
информатики |
|
||
|
программирование (ООП) |
УГАТУ |
|
УГАТУ |
|
|
|
|
|
|
|
Объектно-ориентированное программирование (ООП) – |
Основная идея объектно-ориентированного |
|
|||
|
это методика разработки программ, в основе которой |
программирования – стремление связать данные |
|||
|
лежит понятие объекта, т.е. главной отправной точкой |
и обрабатывающие их подпрограммы в единое |
|
||
|
при проектировании программы является объект, а не |
целое – объект. |
|
||
|
процедура, не действие. |
|
ООП можно рассматривать как модульное |
|
|
|
|
|
|
||
Задача, решаемая с использованием технологии ООП, |
программирование нового уровня, когда вместо |
|
|||
|
описывается в терминах объектов и операций над |
|
случайного, механического объединения |
|
|
|
ними. Программа при таком подходе представляет |
|
подпрограмм и данных, акцент делается на их |
|
|
|
собой набор объектов и связей между ними. |
|
|
||
|
|
смысловую связь. |
|
||
|
|
|
|
||
Программа, состоящая из отдельных объектов, отлично |
Преимущества ООП в полной мере проявляются |
|
|||
|
приспособлена к реагированию на события, |
|
|
||
|
|
при разработке сложных программ. |
|
||
|
происходящие в ОС. |
|
|
||
|
|
|
|
|
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
23 |
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
24 |
Кафедра |
Классы объектов |
|
Кафедра |
|
Классы объектов |
|
|
информатики |
|
информатики |
|
||||
|
УГАТУ |
|
|
УГАТУ |
|||
Основополагающим понятием в объектно- |
|
Каждый конкретный класс имеет свои особенности |
|
||||
ориентированном программировании является |
|
поведения и характеристики, определяющие этот |
|
||||
|
класс. |
|
|||||
класс. |
|
|
|
|
|||
|
|
Классы имеют иерархическую структуру. Наивысший |
|
||||
|
|
|
|
|
|||
Класс (class) – это структура, которая объединяет |
|
уровень структуры – самый общий и самый простой, |
|||||
|
каждый последующий уровень более специфический |
||||||
данные и механизмы их обработки. |
|
|
и менее общий. |
|
|||
|
|
|
|
Если характеристика уже однажды определена для |
|
||
Объект – это конкретный экземпляр класса |
|
|
более высокого уровня, то все уровни, |
|
|||
|
|
расположенные ниже имеют ту же характеристику. |
|
||||
|
|
|
|
|
|
||
|
|
|
|
|
Таким образом, классы-наследники могут |
|
|
|
|
|
|
|
наследовать характеристики классов-родителей. |
|
|
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
25 |
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
26 |
Кафедра |
|
Классы объектов |
|
Кафедра |
|
Классы объектов |
|
информатики |
|
|
информатики |
|
|||
|
|
УГАТУ |
|
|
УГАТУ |
||
|
|
|
|
Экземпляры класса (объекты) могут иметь |
|
||
|
|
|
|
отличающиеся значения свойств и операций, |
|
||
|
|
|
|
которые можно выполнять с ними. |
|
||
|
|
|
|
Например, файловая система компьютера может |
|
||
|
|
|
|
содержать сотни и тысячи файлов. Все файлы |
|
||
|
|
|
|
обладают одним и тем же набором свойств (имя, |
|||
|
|
|
|
положение в файловой системе и др.) и операций |
|||
|
|
|
|
(переименование, перемещение или копирование |
|||
|
|
|
|
и др.) и образуют класс объектов Файлы. |
|
||
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
27 |
|
|
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
28 |
Кафедра |
Классы объектов |
|
Кафедра |
|
Свойства объектов |
|
||
информатики |
|
информатики |
|
|||||
|
УГАТУ |
|
|
УГАТУ |
||||
Класс в ООП выступает в качестве объектного типа |
|
Свойства – параметры объекта, которые определяют |
||||||
данных, а объект – это конкретный экземпляр класса. |
|
внешний вид и поведение объекта, выделяют |
|
|||||
|
|
|
|
|
||||
|
|
|
|
уникальные особенности каждого экземпляра класса. |
||||
Каждый объект класса в ООП обладает набором |
|
|
К ним относятся, например, имя, значение, цвет, |
|
||||
свойств, методов (алгоритмов их обработки) , а также |
|
размер и др. |
|
|||||
событий, на которые он может реагировать. |
|
|
|
|
|
|
||
|
|
|
Состояние – совокупность всех свойств данного |
|
||||
Названия всех классов, используемых, например, в |
|
|
объекта. |
|
|
|||
Delphi (Lazarus), в соответствии с принятыми |
|
|
|
|
|
|
||
соглашениями о присвоении имен, начинаются с |
|
Для обращения к свойствам объекта используются |
|
|||||
английской буквы T (от слова «Туре» – «тип»), |
|
составные имена, содержащие имя объекта в качестве |
||||||
например, TForm – класс форм, TButton – класс |
|
префикса (перед точкой): |
|
|||||
командных кнопок. |
|
|
|
|
. |
|
||
|
|
|
<Имя объекта> <Имя свойства>:= <Выражение> |
|
||||
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
29 |
|
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
30 |
|
Кафедра |
Методы объектов |
|
Кафедра |
|
|
Методы объектов |
|
|
информатики |
|
информатики |
|
|
||||
|
УГАТУ |
|
|
|
УГАТУ |
|||
|
|
|
|
|
|
|||
Метод (Method) – это реализованная в классе функция или |
Доступ к методам, как и к свойствам, возможен с |
|
||||||
процедура, которая используется для работы со |
|
|
||||||
|
|
помощью составных имен, содержащих имя объекта в |
||||||
свойствами. В отличие от обычных подпрограмм метод |
|
|||||||
|
качестве префикса: |
|
||||||
обрабатывает свойства именно того объекта, который |
|
|
|
|||||
|
|
|
|
|
|
|||
вызвал этот метод. |
|
<Имя объекта>.<Имя метода> [ (<Список параметров>) ] ; |
||||||
|
|
|
||||||
Метод – это некоторое действие (операция), которое можно |
|
|
|
|
|
|||
выполнять над данным объектом, или команда, которую |
Согласно принципам ООП (рассмотрим далее), |
|
||||||
может выполнять объект. В результате этого действия в |
обращаться к свойствам класса можно только через его |
|||||||
объекте что-нибудь меняется (например, местоположение, |
||||||||
методы. |
|
|
||||||
цвет, значение поля и др.). |
|
|
|
|||||
|
|
|
|
|
|
|||
Для каждого класса объектов имеется свой перечень |
|
Примечание. Некоторые методы могут вызываться и без создания |
||||||
методов, которые можно к нему применить или которые он |
||||||||
|
объекта, это – методы класса. |
|
||||||
может выполнить. Например, объект можно удалить с |
|
|
|
|||||
|
|
|
|
|
|
|||
экрана, на объекте можно что-нибудь напечатать и т.д. |
|
|
|
|
|
|||
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
31 |
|
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
32 |
Кафедра |
События (Events) |
|
Кафедра |
События (Events) |
|
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
УГАТУ |
|||
События – сигналы, формируемые внешней средой, на |
|
При возникновении события и сообщения о нем производится |
||||
которые объект должен отреагировать соответствующим |
||||||
его обработка с помощью обработчика событий. |
|
|||||
образом. |
|
|
|
|||
|
|
Как правило, обработка события приводит к изменению |
|
|||
|
|
|
|
|||
События наступают в результате: |
|
свойств объекта. |
|
|||
- каких-либо действий пользователя (перемещен курсора, |
Обработчики событий могут обращаться к методам и |
|
||||
нажата кнопка мыши или клавиша на клавиатуре), |
|
свойствам объекта. |
|
|||
|
|
|
|
|||
- работы аппаратуры компьютера (например, сбой или |
|
Для каждого конкретного объекта определено множество |
|
|||
неисправность), |
|
|
||||
|
событий, на которые он может реагировать. |
|
||||
- работы программ (например, возникновение ошибок: |
|
|
||||
|
Соответственно, для конкретного объекта могут быть |
|
||||
деление на нуль, вычисление квадратного корня из |
|
|
||||
|
определены обработчики событий, которые и определяют |
|||||
отрицательного числа и др.) и т.д. |
|
|||||
|
реакцию данного объекта на событие. |
|
||||
- работы самих объектов и т.д. |
|
|
||||
|
Например, можно определить реакцию на событие OnClick - |
|||||
|
|
|
||||
При наступлении события генерируется сообщение |
|
нажатие на клавишу мыши или DoubleClick - двойной |
|
|||
|
|
|
щелчок. |
|
||
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
33 |
Информатика ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
34 |
||
Кафедра |
События (Events) |
|
Кафедра |
Основные принципы ООП |
|
|
информатики |
УГАТУ |
информатики |
УГАТУ |
|||
Cреда Windows и написанные для нее программы |
|
|
|
|
||
управляются событиями. Таких событий в ОС сотни, и |
Объектно-ориентированное программирование |
|
||||
написать программу для Windows – значит определить |
базируется на трех основных принципах: |
|
||||
и описать реакцию на те из них, которые могут |
|
- |
инкапсуляция, |
|
||
возникнуть при работе с этой программой. |
|
- |
наследование |
|
||
|
|
|
|
|||
Типовых событий, используемых при создании |
|
- |
полиморфизм. |
|
||
приложений при объектно-ориетированном подходе к |
|
|
|
|||
программированию значительно меньше, чем в |
|
Программа, построенная по этим принципам, есть |
|
|||
операционной среде Windows. |
|
совокупность объектов и способов их |
|
|||
|
|
|
взаимодействия, при этом обмен информацией между |
|||
|
|
|
объектами происходит посредством сообщений. |
|
||
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
35 |
|
|
|
Кафедра |
Инкапсуляция |
|
Кафедра |
Наследование |
|
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
УГАТУ |
|||
Инкапсуляция – связывание данных с обрабатывающими |
Наследование (Inheriting) означает, что если надо создать |
|||||
эти данные подпрограммами в единое целое – объект. |
||||||
новый класс, лишь немного отличающийся от |
|
|||||
При этом внутренние детали объекта могут быть скрыты |
|
|||||
имеющегося, то нет необходимости в переписывании |
||||||
(encapsulation – герметизация). |
|
|||||
|
уже существующих полей и методов. |
|
||||
|
|
|
|
|||
Доступ к изменению свойств осуществляется только с |
|
Имеющийся класс называют предком или родительским |
||||
помощью методов, присущих данному классу объектов. |
||||||
классом, новый класс называют потомком или дочерним |
||||||
Если есть метод, то данное свойство данного объекта |
||||||
классом. |
|
|
||||
можно изменить, нет метода – нельзя. |
|
|
|
|||
|
Наследование определяет отношение между классами: |
|||||
|
|
|
||||
Для обеспечения инкапсуляции класс не должен |
|
объекты класса-наследника обладают всеми |
|
|||
|
свойствами и методами объектов класса-родителя. |
|
||||
позволять прямого доступа к своим данным. |
|
|
||||
|
В класс-потомок можно добавить новые поля, методы и |
|||||
|
|
|
||||
Методы как бы «окружают» свойства объекта, говорят, что |
свойства. |
|
|
|||
свойства «инкапсулированы» в объект. |
|
|
|
|
||
|
|
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
38 |
|
Кафедра |
Полиморфизм |
|
Кафедра |
Полиморфизм |
|
|
информатики |
|
информатики |
|
|||
|
УГАТУ |
|
УГАТУ |
|||
Полиморфизм (имеющий много форм). К объектам разных |
|
|
|
|||
классов можно применять один и тот же метод, но |
|
Полиморфизм – это свойство классов решать схожие по |
||||
действовать этот метод для разных объектов может по- |
смыслу проблемы разными способами. Другими |
|
||||
разному. |
|
|
|
|||
|
|
словами: полиморфизм – это способность объектов |
|
|||
|
|
|
|
|||
Например, к большинству объектов в Windows и в MSOffice |
выбирать внутреннюю процедуру (метод), на основе |
|
||||
данных, принятых в сообщении. Это свойство дает |
|
|||||
можно применять одни и те же методы: копирование, |
|
|
||||
|
возможность называть разные алгоритмические |
|
||||
перемещение, переименование, удаление и т.п. Однако, |
|
|||||
механизмы реализации этих методов для разных |
|
действия одним именем. |
|
|||
классов (файл в Windows и документ Word) |
|
Каждый объект может реагировать по-своему на одно и |
|
|||
неодинаковы. |
|
|
||||
|
то же сообщение. |
|
||||
|
|
|
|
|||
Полиморфизм – возможность использования одних и тех |
|
|
|
|||
же методов для объектов разных классов, но реализация |
|
|
|
|||
этих методов может быть индивидуальной для каждого |
|
|
|
|||
класса. |
|
|
|
|
|
|
Информатика |
ФАП - 2, ФАТС – 2, 3 курс 1, семестр 1, 2009 г. |
39 |
|
|
|