
- •Технология программирования
- •Технология программирования
- •Оглавление
- •§1. Классификация и эволюция программного обеспечения
- •§2. Модульное и объектно-ориентированное программирование
- •Основные понятия ооп
- •Составные части объектного подхода
- •Инкапсуляция. Свойства
- •Наследование. Методы
- •Полиморфизм
- •§3. Визуальная среда программирования Структура проекта Delphi
- •Библиотека компонентов Delphi
- •Класс tButton (кнопки)
- •Класс tShape (фигуры)
- •§4. Основные типы данных в языке Паскаль
- •Класс tLabel (надписи)
- •Класс tEdit
- •Класс tMemo
- •Класс tMainMenu
- •Стандартные диалоги
- •Классы tOpenDialog и tSaveDialog
- •Класс tFontDialog
- •Инструкция case
- •§6. Программирование циклических алгоритмов
- •Цикл с параметром. Инструкция for
- •Цикл с предусловием. Инструкция while
- •Цикл с постусловием. Инструкция repeat … until
- •§7. Простейшие вычислительные методы
- •Метод прямоугольников
- •Метод Монте-Карло
- •Метод деления пополам
- •§8. Процедуры и функции
- •§9. Одномерные массивы
- •Класс tListBox
- •Класс tComboBox
- •§10. Двумерные и многомерные массивы
- •Класс tStringGrid
- •Алгоритмы поиска наименьшего и наибольшего элемента
- •§11. Алгоритмы поиска и сортировки. Понятие вычислительной сложности алгоритма
- •Алгоритм простого перебора
- •Алгоритм бинарного поиска
- •Алгоритм сортировки методом «пузырька»
- •Алгоритм сортировки включением
- •Понятие вычислительной сложности алгоритма
- •§12. Обработка исключительных ситуаций
- •§13. Программирование процессов реального времени
- •Класс tTimer
- •§14. Графическая подсистема Delphi Класс tImage
- •Класс tCanvas
- •§15. Динамическое создание компонентов. Конструкторы и деструкторы
- •§16. Тестирование и отладка программ
- •Методы тестирования программ
- •Средства отладки программ в Delphi
- •Трассировка программы
- •Точки останова программы
- •Наблюдение значений переменных
- •§17. Жизненный цикл программного обеспечения
- •Последовательный (каскадный) тип
- •Эволюционный (спиральный) тип
- •Библиографический список
- •Технология программирования
- •Редактор с.В.Пилюгина
- •620034, Екатеринбург, ул. Колмогорова, 66, УрГупс Редакционно-издательский отдел
§2. Модульное и объектно-ориентированное программирование
Оглядываясь на историю развития программирования, нельзя не заметить две тенденции:
смещение акцентов от программирования отдельных деталей к программированию более крупных компонентов;
смещение акцентов от структур алгоритмов к структурам данных.
Большинство современных коммерческих программных систем больше и существенно сложнее, чем их предшественники даже несколько лет назад. Постоянный рост сложности обусловил большое количество исследований по методологии программирования.
Разрастание программных проектов означало и увеличение численности коллективов программистов, а следовательно, необходимость независимой разработки отдельных частей проекта. Ответом на эту потребность стала технология модульного программирования, позволяющая создавать независимые модули, объединяя в них сильно связанные между собой и слабо связанные с другими задачи и функции.
Основным элементом системы выступал алгоритм, реализованный на языке программирования. Методы структурного проектирования и программирования состояли в последовательной детализации задачи «сверху вниз», определяя на каждом этапе новые детали алгоритма. Таким образом, алгоритмы были основными строительными блоками проекта.
Методы и средства объектно-ориентированного подхода заключаются в том, что в качестве таких блоков используются классы и объекты.
Новая методология не порывает с прежними методами, а строится с учетом предыдущего опыта. Объектный подход зарекомендовал себя как унифицирующая идея всей компьютерной науки, применимая не только в программировании, но также в анализе предметной области, проектировании систем и даже архитектуры компьютеров.
Объектно-ориентированное программирование (ООП) – это методология программирования, основанная на представлении программы в виде совокупности объектов, каждый из которых является экземпляром определенного класса, а классы образуют иерархию.
Основные понятия ооп
В этом разделе мы рассмотрим следующие понятия: класс, объект, поле, метод и свойство.
Классом называется особый тип записи, который может иметь в своем составе поля, методы и свойства. Такой тип называется объектным типом. Например, так выглядит описание класса, содержащего поле MyField целочисленного типа и метод MyMethod, дающий целочисленный результат:
type
TMyObject = class(TObject)
MyField : integer;
Function MyMethod : integer;
end;
Для того чтобы использовать новый тип в программе, следует объявить переменную этого типа. Переменная объектного типа называется экземпляром класса или объектом.
Поля объекта – это данные, уникальные для каждого экземпляра. В отличие от полей, методы у всех объектов одного класса общие. Свойства – это поля, доступные не напрямую, а через методы.
У каждого класса наряду с методами, присущими только ему, должны присутствовать два общих метода – конструктор и деструктор.
Конструктор предназначен для выделения памяти объекту и инициализации его свойств. Общепринято называть конструктор Create. Новый класс порождается от какого-либо класса-предка. Для того чтобы правильно проинициализировать в создаваемом объекте поля, относящиеся к классу-предку, следует сразу же при входе в конструктор вызвать конструктор предка:
Constructor TMyObject.Create
begin
inherited Create;
…
end;
Деструктор выполняет обратное конструктору действие – уничтожает объект и освобождает выделенную ему память. Стандартное название деструктора – Destroy.
На первых порах вам почти не придется включать в свои программы явный вызов конструкторов и деструкторов. Дело в том, что любой компонент, попавший при визуальном программировании в ваше приложение из Палитры компонентов, включается в определенную иерархию. Иерархия эта замыкается на форме (TForm): для всех ее составных частей конструкторы и деструкторы вызываются автоматически, незримо для программиста. Создает и уничтожает формы приложение (глобальный объект с именем Application). В файле проекта (.dpr) вы можете увидеть вызов метода CreateForm, предназначенного для этой цели. Что же касается объектов, создаваемых динамически (во время выполнения приложения), то здесь нужен явный вызов конструктора.