Объектно-ориентированное программирование
Автор работы: Пользователь скрыл имя, 11 Января 2013 в 00:09, курсовая работа
Описание
Цель курсовой работы по «Объектно-ориентированному программированию» заключается в том что бы выполнить теоретическую и практическую часть по отдельным вопросам.
1) Раскрыть понятие библиотеки классов.
2) Разработать приложение позволяющее выполнять функции файлового менеджера.
Работа состоит из 1 файл
Курсовая по Объектно-ориентированному программированию.docx
— 1.03 Мб (Скачать документ)ВВЕДЕНИЕ
Объектно-ориентированные языки программирования пользуются в последнее время большой популярностью среди программистов, так как они позволяют использовать преимущества объектно-ориентированного подхода не только на этапах проектирования и конструирования программных систем, но и на этапах их реализации, тестирования и сопровождения, что и обусловило актуальность моей работы. В данной курсовой работе затронуты такие вопросы как «библиотеки классов», «иерархия классов», а так же нужно написать в среде разработки «Delphi» программу, которая будет иметь функции простого файлового менеджера. Работа над этой курсовой работой должна углубить и расширить теоретические знания по объектно-ориентированному языку программированию Object Pascal (Delphi).
ЦЕЛЬ РАБОТЫ
Цель курсовой работы по «Объектно-ориентированному программированию» заключается в том что бы выполнить теоретическую и практическую часть по отдельным вопросам.
- Раскрыть понятие библиотеки классов.
- Разработать приложение позволяющее выполнять функции файлового менеджера.
- Рассказать о назначении и интерфейсе приложения. Сделать скриншоты программы.
- Блок-схемы основных процедур.
- Листинг с комментариями.
- Требования к программным и аппаратным устройствам.
- Предоставить руководство пользователя.
В заключении стоит подвести итоги, указать на достоинства и недостатки программы.
СОДЕРЖАНИЕ
Введение
Цель работы
- Теоретическая часть «Библиотеки классов. Иерархия классов»
1.1Общие сведенья о библиотеках классов.
1.2 Иерархия классов
- Практическая часть «Файловый м
енеджер»
2.1 Назначение и интерфейс приложения
2.2 Блок-схемы основных процедур
2.3 Листинг с комментариями
2.4 Требования к аппаратным и программным устройствам
2.5 Руководство пользователя
Заключение
Список литературы и ресурсов
БИБЛИОТЕКИ КЛАССОВ. ИЕРАРХИЯ КЛАССОВ.
1.1 Библиотеки классов.
Классами в Delphi называются специальные типы, которые содержат поля, методы и свойства. Как и любой другой тип, класс служит лишь образцом для создания конкретных экземпляров реализации, которые называются объектами. Сразу же уточню, что в предшественнике Delphi - Turbo Pascal объектами называются типы, имеющие много общего с классами Delphi. Однако существенные усовершенствования, внесенные в объектную модель Delphi, заставили разработчиков языка ввести для обозначения объектов специальный термин - класс, заимствованный, кстати, из Си++.
Важным отличием классов от других типов является то, что объекты класса всегда распределяются в куче, поэтому объект-переменная фактически представляет собой лишь указатель на динамическую область памяти. Однако в отличие от других указателей при ссылке на содержимое объекта запрещается использовать символ “^” за именем объекта:
type
TMyClass = class(TObject) Field: Integer;
end;
var
MyClass: TMyClass;
begin
MyClass^.Field := 0; // Ошибка! Следует писать так:
MyClass.Field := 0;
end;
Классы - это особое “изобретение” программистов для упрощения разработки сложных программ и улучшения их качества. В основе классов лежат три фундаментальных принципа, которые называются инкапсуляция, наследование и полиморфизм.
Инкапсуляция
Класс представляет собой единство
трех сущностей - полей, методов и
свойств. Объединение этих сущностей
в единое целое и называется инкапсуляцией.
Инкапсуляция позволяет во многом изолировать
класс от остальных частей программы,
сделать его “самодостаточным”
для решения конкретной задачи. В
результате класс всегда несет в
себе некоторую функциональность. Например,
класс т Form содержит (инкапсулирует
в себе) все необходимое для
создания Windows-окна, класс тмето представляет
собой полнофункциональный
Инкапсуляция представляет собой мощное средство обмена готовыми к работе программными заготовками. Библиотека классов Delphi - это фактически набор “кирпичиков”, созданных программистами Borland для построения ваших программ.
Наследование
Любой класс может быть порожден от другого класса. Для этого при его объявлении указывается имя класса-родителя:
TChildClass = class (TParentClass)
Порожденный класс автоматически наследует поля, методы и свойства своего родителя и может дополнять их новыми. Таким образом, принцип наследования обеспечивает поэтапное создание сложных классов и разработку собственных библиотек классов.
Все классы Delphi порождены от единственного родителя класса TObject. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие весь жизненный цикл любых объектов - от их создания до уничтожения. Программист не может создать класс, который не был бы дочерним классом TObject. Следующие два объявления идентичны:
TaClass = class(TObject) TaClass = class
Принцип наследования приводит к созданию
ветвящегося дерева классов, постепенно
разрастающегося при
Полиморфизм
Полиморфизм - это свойство классов решать схожие по смыслу проблемы разными способами. В рамках Delphi поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющих разную алгоритмическую основу и, следовательно, придающих объектам разные свойства. Это и называется полиморфизмом объектов.
В Delphi полиморфизм достигается не только описанным выше механизмом наследования и перекрытия методов родителя, но и их виртуализацией, позволяющей родительским методам обращаться к методам своих потомков.
Все классы библиотеки визуальных компонентов произошли от группы базовых классов, которые лежат в основе иерархии VCL. Самый общий предок компонентов — это класс TObject, инкапсулирующий простейший объект. Как известно, каждый объект наследует свойства и методы родительского класса. К объекту можно добавить новые свойства и методы, но нельзя удалить унаследованные. Объект-наследник в свою очередь может стать родительским для нового класса, который унаследует возможности всех своих предков.
Поэтому иерархия базовых классов
VCL продумана чрезвычайно
1.2 Иерархия классов
Классы библиотеки VCL используют механизм простого наследования: один класс может иметь только одного предка. Корнем иерархии классов является класс TObject. Любой класс VCL-библиотеки наследуется от класса TObject.
На рис. 1.2 представлена корневая часть дерева иерархии классов VCL-библиотеки.
Рис.1.2 Иерархия классов VCL-библиотеки
Класс TObject
Класс TObject инкапсулирует общие черты поведения всех объектов VCL-библиотеки. Если при создании нового объекта не указан базовый класс, то Delphi автоматически использует как предка класс TObject.
Объявление нового класса выполняется в секции type. Если после слова class в скобках не указано никакого наследуемого класса, то по умолчанию предполагается, что создаваемый класс наследуем от класса TObject.
Например:
type TMyClass = class // Эти два объявления
type TMyClass = class(TObject) //являются эквивалентными
Класс TComponent
TComponent является предком всех компонентов VCL-библиотеки.
Все потомки данного класса могут
быть расположены в палитре
Родительским элементом управления называется тот, в который непосредственно помещен данный компонент.
Владельцем всех компонентов, расположенных в форме, является сама форма. Владельцем всех форм является приложение. Если компонент расположен не непосредственно в форме, а, например, в компоненте типа TPanel, то владелец и родительский элемент управления у него будут различны.
Класс предоставляет большой набор свойств, включая следующие:
- ComObject - определяет ссылку на интерфейс, наследуемый от IUnknown и реализованный компонентом. Используется только для компонентов, поддерживающих СОМ-интерфейс.
- ComponentCount - указывает количество компонентов, принадлежащих данному компоненту.
- ComponentIndex - указывает индекс компонента в массиве Components владельца данного компонента. Первый компонент в списке имеет индекс 0.
- Components - список всех компонентов, принадлежащих данному компоненту. Используется для ссылки на компонент по его индексу или для последовательного доступа ко всем компонентам, принадлежащих данному компоненту.
- Name - указывает имя компонента, используемое в коде программы для доступа к его свойствам и методам. При создании компонента Delphi автоматически назначает ему имя на основе имени класса компонента.
- Owner - указывает компонент, владеющий данным компонентом. Компонент всегда удаляется (освобождается память) при удалении его владельца.
Класс TControl
TControl - это базовый класс всех элементов управления (включая и окно формы). Эти компоненты могут быть видимы во время выполнения. Для них определены такие свойства, как позиция, курсор, всплывающая подсказка, методы для рисования или перемещения элемента управления, события для манипуляций с помощью мыши.
Класс предоставляет большой набор свойств, включая следующие:
- Action - назначает действие (объект action), ассоциируемый с данным элементом управления.
- AutoSize - определяет, будет ли элемент управления автоматически изменять свой размер при изменении его содержимого.
- TCaption - определяет строку, отображаемую как заголовок окна или метку. Символ & в заголовке указывает, что следующий за ним символ будет отображаться подчеркнутым. Такой символ определяет клавишу-акселератор. При одновременном нажатии этой клавиши и клавиши Alt происходит перемещение фокуса ввода на данный элемент управления. Для того, чтобы показать в заголовке сам символ амперсанда, следует ввести два символа &&.
- Color - позволяет определять или изменять фоновый цвет элемента управления. Если значение свойства ParentColor равно True, то при изменении фона родительского элемента управления происходит и автоматическое изменение фона дочернего элемента управления.
- Enabled - определяет, доступен ли элемент управления.
- Font - определяет атрибуты текста, такие, как шрифт, начертание, размер, цвет и т.п.
- Height и Width - определяют вертикальный и горизонтальный размер элемента управления в пикселях.
- HelpType - определяет, каким образом для элемента управления будет специфицирована тема файла справки. Если значение свойства равно htContext, то ID справки содержится в свойстве HelpContext. Если значение свойства равно htKeyword, то тему справки определяет свойство HelpKeyword.
- HelpContext - определяет числовой ID темы справки, отображаемой как контекстно-зависимая справка.
- HelpKeyword - определяет тему в файле справки.
- Hint - содержит подсказку, отображаемую при расположении и задержании указателя мыши над элементом управления. Подсказка отображается только, если значение свойства ShowHint установлено равным True.
- Left - определяет горизонтальную координату элемента управления относительно его родительского элемента.
- Parent - указывает родительский элемент управления.
- ParentColor и ParentFont - если это свойства равны true, то используются цвет и шрифт родительского элемента управления.
- PopupMenu - определяет всплывающее меню (контекстное меню), ассоциируемое с данным элементом управления. Если свойство AutoPopup объекта типа TPopupMenu равно True, то меню будет отображаться автоматически. Если это свойство равно False, то для отображения всплывающего меню следует в обработчике события OnContextPopup вызвать метод Popup.
- ShowHint - определяет, будет ли для элемента управления отображаться окно всплывающей подсказки.
- Text - содержит строку текста, располагаемую в элементе управления.
- Visible - определяет, является ли компонент видимым.
- Класс предоставляет большой набор методов, включая следующие:
- Click - инициирует событие OnClick.
- Create - создает экземпляр класса TControl и выполняет инициализацию его свойств.
- DblClick - инициирует событие OnDblClic.
- Hide - скрывает элемент управления.
- Refresh - сразу перерисовывает на экране элемент управления, вызывая метод Repaint.
- Show - делает элемент управления видимым, одновременно устанавливая значение его свойства Visible равным True.
Класс TWinControl
Класс TWinControl является базовым классом всех оконных элементов управления.
Класс предоставляет большой набор свойств, включая следующие:
- ControlCount - указывает количество дочерних элементов управления.
- Controls - содержит список всех дочерних элементов управления.
- TabOrder - указывает номер элемента управления в табулированном порядке родительского элемента управления.
Класс TApplication
Класс TApplication инкапсулирует объект "Windows-приложение". Посредством этого класса определяется интерфейс между разработчиком и средой Windows. В каждом приложении Delphi всегда автоматически создается один объект Application как экземпляр класса приложения. Для большинства приложений этот объект является экземпляром класса TApplication. Компонент TApplication не отображается в палитре компонентов и не имеет публикуемых свойств. Для того чтобы иметь возможность перехватывать события для приложения, используя среду разработки IDE, можно добавить в любую форму проекта компонент TApplicationEvents.
Класс предоставляет большой набор свойств, включая следующие:
- HelpFile - определяет имя файла справки.
- Icon - определяет пиктограмму, отображаемую в строке вместе с именем приложения.
- MainForm - определяет главную форму приложения. Она действует как главное окно приложения. При закрытии этой формы завершается и работа приложения.
- ShowMainForm - если значение свойства равно True (по умолчанию), то главное окно приложения показывается автоматически при запуске приложения. Чтобы при запуске приложения главное окно приложения было скрыто, следует в главном файле проекта до выполнения метода Application.Run установить значение данного свойства равным False и одновременно для формы, определенной как главное окно приложения, установить значение свойства Visible равным False.
- Title - определяет заголовок приложения.
Класс TScreen
Каждое приложение Delphi имеет глобальную переменную Screen типа TScreen. Эта переменная определена как var Screen: TScreen;.
Компонент TScreen, так же как и компонент TApplication, недоступен из инспектора объектов. Этот компонент предназначен для обеспечения доступа к устройству вывода - экрану. Его свойства содержат информацию об используемом разрешении монитора, курсорах и шрифтах, доступных для приложения, списке форм приложения и активной форме.