Основы алгоритмизации и программирования
I. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ
314.50K
Category: programmingprogramming

Основы алгоритмизации и программирования. Элементы объектно-ориентированной разработки программ

1. Основы алгоритмизации и программирования

элементы
объектно-ориентированной
разработки программ

2.

ТЕМА 1:
Основные принципы
объектноориентированного
программирования

3. I. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ

- одна из первых и широко применяемых технологий программирования.
Основой структурного подхода являются
два основополагающих принципа:
а. Использование процедурного
стиля программирования;
б. Последовательная
декомпозиция алгоритма
решения задачи сверху вниз.

4.

Структурное программирование
определило значение модульного
построения
программы
при
разработке
больших проектов, но в алгоритмических
(процедурных)
языках
программирования
единственным
способом
структуризации
программы является её составление
из
процедур и функций.
ДОСТОИНСТВА ОБЪЕКТНО-ОРИЕНТИРОВАННОГО ПОДХОДА:
Упрощение
процесса
проектирования
программных
систем.
Легкость
сопровождения
и модификации
Минимизация времени
разработки за счет
многократного
использования
готовых модулей.

5.

I.1.
Основные понятия объектноориентированного программирования
ООП – подход, использующий объектную
декомпозицию, основанную на выделении
объектов и связей между ними.
ОБЪЕКТЫ и КЛАССЫ
ОБЪЕКТ – это сущность, сочетающая в себе
как совокупность данных, так и действий над
ними. Характеризуется своим состоянием
(значением атрибутов). Все атрибуты делятся
на две группы – «внутренние» (доступные
только самому объекту) и атрибуты входящие
в интерфейс объекта (свойства)

6.

ИНТЕРФЕЙС ОБЪЕКТА – это описание того, как он
может взаимодействовать с окружающим миром.
Интерфейс определяется свойствами и методами.
МЕТОДЫ – действия над объектами
КЛАСС – объекты с одинаковыми возможностями (
данными и методами ).
ОБЪЕКТ – экземпляр класса.
ООП позволяет программировать в
терминах классов: определять классы,
конструировать произвольные классы
(подклассы),
создавать
объекты
принадлежащие
классу
(экземпляр
класса).

7.

СВОЙСТВА ОБЪЕКТОВ
Структуру и поведение объектов в ООП
определяют свойства:
инкапсуляция, наследование, полиморфизм
ИНКАПСУЛЯЦИЯ - объединение всех данных и
методов объекта (включая данные и методы
объектов-предков)
Механизм инкапсуляции скрывает данные и
методы
объекта
от
внешнего
вмешательства
или
неправильного
использования.
Разработчика интересует не внутренняя
реализация объекта, а то какие функции он
должен предоставить

8.

НАСЛЕДОВАНИЕ – процесс посредством которого
один объект может приобретать свойства другого,
а именно объект может наследовать свойства
другого объекта и добавлять к ним свойства,
характерные только для него.
Пример:
Объект «ПОЗИЦИЯ»
Свойства – значения координат X и Y
Метод – НАЗНАЧИТЬ КООРДИНАТЫ
Описание объекта ПОЗИЦИЯ:
Позиция (X,Y, назначить XY)
Описание объекта ЗВЕЗДА:
Объект «ЗВЕЗДА»
Свойства - значения координат X и Y
- видимость
- цвет
Метод – назначить XY
- назначить цвет
- зажечь
- погасить
-переместить
Звезда (X,Y, видимость, цвет, назначить XY, назначить цвет, зажечь, погасить, переместить)
Описание объекта ЗВЕЗДА с учетом наследования:
Звезда (Позиция, видимость, цвет, назначить цвет, зажечь, погасить, переместить)

9.

Посредством
наследования
формируются
связи между объектами, а для выражения
процесса наследования используют понятия
«родители» и «потомки».
В программировании наследование служит для
сокращения
избыточного
кода
и
суть
заключается в том, что уже существующий
интерфейс вместе с его программной частью
можно использовать для других объектов.
ПОЛИМОРФИЗМ – характеризует способность
различных объектов по разному обрабатывать
одинаковые сообщения. При этом различные
объекты могут обладать свойствами и методами с
одинаковыми именами, но обращение к ним будет
вызывать различную реакцию для различных
объектов.

10.

На практике полиморфизм означает, что
можно создать общий интерфейс вызова для
группы близких по смыслу действий.
Достоинство полиморфизма в том, что при
использовании объекта можно вызвать
определенное свойство или метод, не
заботясь о том, как объект выполнит задачу.
т.о. полиморфизм означает присвоение
методу одного имени или обозначения, которое
совместно используется объектами различных
классов, при этом каждый объект реализует
действие способом, соответствующим его
классу.

11.

Пример:
Объект «ЗВЕЗДА»
Объект «ПЛАНЕТА»
Свойства - значения координат X и Y Свойства - значения координат X и Y
- радиус
- видимость
- цвет
- цвет
Метод – назначить XY
Метод – назначить XY
- назначить цвет
- назначить цвет
- зажечь
- зажечь
- погасить
- погасить
-переместить
-переместить
Описание объекта ЗВЕЗДА:
ЗВЕЗДА (ПОЗИЦИЯ, видимость, цвет, назначить цвет, зажечь, погасить, переместить)
Очевидно, что объект планета наследует все возможности объекта звезда, НО
Методы НАЗНАЧИТЬ ЦВЕТ, ЗАЖЕЧЬ, ПОГАСИТЬ, ПЕРЕМЕСТИТЬ, по результатам
действия являясь фактически теми же самыми, не могут быть реализованы
одинаковой последовательностью команд в случае со звездой и планетой. Т.о.
методы объектов будут иметь одинаковые имена, а внутреннее описание методов
будет различно для разных объектов:
ПЛАНЕТА (ЗВЕЗДА, радиус, назначить цвет, зажечь, погасить, переместить)

12.

КЛАССЫ
Класс – объединяет объекты с
одинаковыми возможностями
(данными и методами ).
МЕТОДЫ – действия над объектами
ОБЪЕКТ – это экземпляр класса.
Соотношение между
объектом и классом
аналогичны соотношению
понятий переменная и тип.

13.

КОМПОНЕНТЫ
КОМПОНЕНТ – это объект, объединяющий
состояние и интерфейс (способ взаимодействия),
который позволяет включать компоненты в
различные современные среды разработки
приложений.
При этом не важно на каком языке разработан
компонент.
Он
должен
удовлетворять
определенным
внешним
параметрам,
быть
нейтральным
по
отношению
к
языку
программирования, чтобы его можно было
использовать в программе на любом языке,
поддерживающем компонентную технологию.

14.

у КОМПОНЕНТА ИМЕЮТСЯ ДВА ТИПА ИНТЕРФЕЙСОВ –
интерфейс стадии проектирования;
интерфейс стадии выполнения.
Интерфейс проектирования позволяет включать
компоненты в современные среды разработки
приложений, а
Интерфейс выполнения управляет работой
компонента во время выполнения программы.
Состояние компонента может быть изменено
только с помощью изменения его свойств и
вызова методов.

15.

Разработка любого приложения состоит из
двух взаимосвязанных этапов:
Проектирования и создания
функционального интерфейса приложения
(т.е. набора визуальных компонентов, которые
будут обеспечивать взаимодействие
пользователя и вычислительной среды)
Программирования процедур обработки
событий, возникающих при работе
пользователя с приложением.

16.

ПРОЕКТИРОВАНИЕ ИНТЕРФЕЙСА
Первый этап формирования общего вида
главного окна при выполнении приложения и
способов управления работой приложения.
Для каждого компонента необходимо
определить его внешний вид, размеры,
способ и место размещения в области
окна приложения (т.е реализовать
интерфейс разработки и интерфейс
выполнения).

17.

КОМПОНЕНТЫ, ДОСТУПНЫЕ ПРОЕКТИРОВЩИКУ НА
ЭТАПЕ РАЗРАБОТКИ ПРИЛОЖЕНИЯ:
КОМПОНЕНТЫ
ВИЗУАЛЬНЫЕ
элементы управления
НЕВИЗУАЛЬНЫЕ
ОКОННЫЕ
НЕОКОННЫЕ
элементы управления
элементы управления
Рис. 1
Иерархия групп компонентов схожей внутренней структуры

18. ВИЗУАЛЬНЫЕ КОМПОНЕНТЫ

Характеризуются наличием свойств размеров и
положения в области окна и на стадии разработки
приложения находятся на форме в том же месте, что
и во время выполнения приложения (кнопки, списки,
переключатели, надписи)
ОКОННЫЕ ВИЗУАЛЬНЫЕ
КОМПОНЕНТЫ
НЕОКОННЫЕ ВИЗУАЛЬНЫЕ
КОМПОНЕНТЫ
Компоненты,
которые
могут
получать
фокус
ввода
(т.е.
становится
активными
для
взаимодействия с пользователем)
и содержать другие визуальные
компоненты.
не могут получать фокус ввода и
содержать другие визуальные
компоненты (например надписи и
графические кнопки)

19.

НЕВИЗУАЛЬНЫЕ КОМПОНЕНТЫ
На стадии разработки не имеют своего
фиксированного местоположения и размеров.
Во время выполнения приложения некоторые из
них иногда становятся видимыми (например,
стандартные диалоговые окна открытия и
сохранения файлов), а другие остаются
невидимы всегда (например таблицы базы
данных).

20.

СВОЙСТВА КОМПОНЕНТОВ
Свойства компонента – атрибуты,
определяющие его состояние и поведение.
Различают три вида свойств:
Установленные
для них значения будут использоваться в момент первого
отображения компонента и в дальнейшем могут быть
изменены во время выполнения приложения;
1. СВОЙСТВО ВРЕМЕНИ ПРОЕКТИРОВАНИЯ.
Изменением их значений
можно управлять только изнутри программного кода (во
время выполнения приложения);
2. ДИНАМИЧЕСКИЕ
СВОЙСТВА.
которые могут быть
прочитаны и использованы при выполнении программы,
но не могут быть изменены.
3. СВОЙСТВА ТОЛЬКО ДЛЯ ЧТЕНИЯ,

21.

ПРОГРАММИРОВАНИЕ ПРОЦЕДУР
Второй
этап
непосредственно
заключающийся в программировании
процедур
обработки
событий,
исходящих от компонентов.
Основная задача при разработке таких
процедур – запрограммировать реакцию на
все
возможные
изменения
состояний
объектов.

22.

I.2. Объектно-ориентированные языки
программирования
Объектно-ориентированные
языки
программирования обязательно должны содержать
конструкции, позволяющие объявлять классы,
создавать и уничтожать объекты, принадлежащие
классам и т.п.
Эти языки можно разделить на две группы:
«ЧИСТЫЕ» объектноориентированные языки, в
классическом виде
поддерживающие объектноориентированную технологию:
•Simula (1962)
•Smalltalk (1972)
•Betta (1975)
•Cecil (1992)
•Java (1995)
«ГИБРИДНЫЕ» появившиеся в
результате внедрения объектноориентированных конструкций в
популярный процедурный язык
программирования:
•Object Pascal (1984)
•C++ (1983)

23.

Задание:
1.
ПИСЬМЕННО ответить на следующие вопросы:
1. Объясните, в результате чего развитие языков программирования привело к
появлению объектно-ориентированных языков?
2. Как соотносятся понятия объект, класс, метод?
3. В чем заключается принцип компонентной технологии программирования.
4. Охарактеризуйте основные преимущества объектно-ориентированного
программирования при разработке программ.
5. Охарактеризуйте основные различия между группами компонентов.
2.
ПИСЬМЕННО выполнить задание:
оформите классификацию языков программирования
в виде таблицы по следующим классификационным признакам:
a) Поколение ЯП
b) Уровень ЯП
c) Специализация ЯП
d) Алгоритмичность (процедурность) ЯП
English     Русский Rules