Объектно-ориентированное программирование

Автор работы: Пользователь скрыл имя, 11 Января 2013 в 00:09, курсовая работа

Описание

Цель курсовой работы по «Объектно-ориентированному программированию» заключается в том что бы выполнить теоретическую и практическую часть по отдельным вопросам.
1) Раскрыть понятие библиотеки классов.
2) Разработать приложение позволяющее выполнять функции файлового менеджера.

Работа состоит из  1 файл

Курсовая по Объектно-ориентированному программированию.docx

— 1.03 Мб (Скачать документ)

ВВЕДЕНИЕ

Объектно-ориентированные  языки программирования пользуются в последнее  время большой популярностью среди программистов, так как они позволяют  использовать преимущества объектно-ориентированного подхода не только на  этапах проектирования и конструирования программных систем, но и на этапах их  реализации, тестирования и сопровождения, что и обусловило актуальность моей работы. В данной курсовой работе затронуты такие вопросы как «библиотеки классов», «иерархия классов», а так же нужно написать в среде разработки «Delphi» программу, которая будет иметь функции простого файлового менеджера. Работа над этой курсовой работой должна углубить и расширить теоретические знания по объектно-ориентированному языку программированию Object Pascal (Delphi).

 

ЦЕЛЬ РАБОТЫ

Цель курсовой работы по «Объектно-ориентированному программированию»  заключается в том что бы выполнить  теоретическую и практическую часть  по отдельным вопросам.

  1. Раскрыть понятие библиотеки классов.
  2. Разработать приложение позволяющее выполнять функции файлового менеджера.
    1. Рассказать о назначении и интерфейсе приложения. Сделать скриншоты программы.
    2. Блок-схемы основных процедур.
    3. Листинг с комментариями.
    4. Требования к программным и аппаратным устройствам.
    5. Предоставить руководство пользователя.

В заключении стоит подвести итоги, указать на достоинства и  недостатки программы.

 

 

СОДЕРЖАНИЕ

Введение 

Цель работы

  1. Теоретическая часть  «Библиотеки классов. Иерархия классов»

1.1Общие сведенья о библиотеках классов.

1.2 Иерархия классов

  1. Практическая часть «Файловый менеджер»

2.1 Назначение и интерфейс приложения

2.2 Блок-схемы основных процедур

2.3 Листинг с комментариями

2.4 Требования к аппаратным и программным устройствам

2.5 Руководство пользователя

Заключение 

Список литературы и ресурсов

 

  1. БИБЛИОТЕКИ КЛАССОВ. ИЕРАРХИЯ КЛАССОВ.

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-окна, класс тмето представляет собой полнофункциональный текстовый  редактор, класс TTimer обеспечивает работу программы с таймером и т. д.

Инкапсуляция представляет собой  мощное средство обмена готовыми к  работе программными заготовками. Библиотека классов Delphi - это фактически набор  “кирпичиков”, созданных программистами Borland для построения ваших программ.

Наследование

Любой класс может быть порожден от другого класса. Для этого при  его объявлении указывается имя  класса-родителя:

TChildClass = class (TParentClass)

Порожденный класс автоматически  наследует поля, методы и свойства своего родителя и может дополнять  их новыми. Таким образом, принцип  наследования обеспечивает поэтапное  создание сложных классов и разработку собственных библиотек классов.

Все классы Delphi порождены от единственного родителя класса TObject. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие весь жизненный цикл любых объектов - от их создания до уничтожения. Программист не может создать класс, который не был бы дочерним классом TObject. Следующие два объявления идентичны:

TaClass = class(TObject) TaClass = class

Принцип наследования приводит к созданию ветвящегося дерева классов, постепенно разрастающегося при перемещении  от TObject к его потомкам. Каждый потомок дополняет возможности своего родителя новыми и передает их своим потомкам.

Полиморфизм

Полиморфизм - это свойство классов  решать схожие по смыслу проблемы разными  способами. В рамках Delphi поведенческие свойства класса определяются набором входящих в него методов. Изменяя алгоритм того или иного метода в потомках класса, программист может придавать этим потомкам отсутствующие у родителя специфические свойства. Для изменения метода необходимо перекрыть его в потомке, т. е. объявить в потомке одноименный метод и реализовать в нем нужные действия. В результате в объекте-родителе и объекте-потомке будут действовать два одноименных метода, имеющих разную алгоритмическую основу и, следовательно, придающих объектам разные свойства. Это и называется полиморфизмом объектов.

В Delphi полиморфизм достигается не только описанным выше механизмом наследования и перекрытия методов родителя, но и их виртуализацией, позволяющей родительским методам обращаться к методам своих потомков.

Все классы библиотеки визуальных компонентов  произошли от группы базовых классов, которые лежат в основе иерархии VCL. Самый общий предок компонентов  — это класс TObject, инкапсулирующий  простейший объект. Как известно, каждый объект наследует свойства и методы родительского класса. К объекту  можно добавить новые свойства и  методы, но нельзя удалить унаследованные. Объект-наследник в свою очередь  может стать родительским для  нового класса, который унаследует возможности всех своих предков.

Поэтому иерархия базовых классов VCL продумана чрезвычайно тщательно  — ведь на их основе создано все  множество компонентов, используемых в Delphi. Особое место среди базовых  классов, помимо TObject, занимают TComponent (от него происходят все компоненты) и TControl (от него происходят все элементы управления).

 

 

 

 

 

 

 

 

 

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-библиотеки.

Все потомки данного класса могут  быть расположены в палитре компонентов.Класс TComponent позволяет определять родительский элемент управления и владельца  компонента.

Родительским элементом управления называется тот, в который непосредственно помещен данный компонент.

Владельцем всех компонентов, расположенных в форме, является сама форма. Владельцем всех форм является приложение. Если компонент расположен не непосредственно в форме, а, например, в компоненте типа TPanel, то владелец и родительский элемент управления у него будут различны.

Класс предоставляет большой набор  свойств, включая следующие:

  1. ComObject - определяет ссылку на интерфейс, наследуемый от IUnknown и реализованный компонентом. Используется только для компонентов, поддерживающих СОМ-интерфейс.
  2. ComponentCount - указывает количество компонентов, принадлежащих данному компоненту.
  3. ComponentIndex - указывает индекс компонента в массиве Components владельца данного компонента. Первый компонент в списке имеет индекс 0.
  4. Components - список всех компонентов, принадлежащих данному компоненту. Используется для ссылки на компонент по его индексу или для последовательного доступа ко всем компонентам, принадлежащих данному компоненту.
  5. Name - указывает имя компонента, используемое в коде программы для доступа к его свойствам и методам. При создании компонента Delphi автоматически назначает ему имя на основе имени класса компонента.
  6. Owner - указывает компонент, владеющий данным компонентом. Компонент всегда удаляется (освобождается память) при удалении его владельца.

Класс TControl

TControl - это базовый класс всех элементов управления (включая и окно формы). Эти компоненты могут быть видимы во время выполнения. Для них определены такие свойства, как позиция, курсор, всплывающая подсказка, методы для рисования или перемещения элемента управления, события для манипуляций с помощью мыши.

Класс предоставляет большой набор  свойств, включая следующие:

  1. Action - назначает действие (объект action), ассоциируемый с данным элементом управления.
  2. AutoSize - определяет, будет ли элемент управления автоматически изменять свой размер при изменении его содержимого.
  3. TCaption - определяет строку, отображаемую как заголовок окна или метку. Символ & в заголовке указывает, что следующий за ним символ будет отображаться подчеркнутым. Такой символ определяет клавишу-акселератор. При одновременном нажатии этой клавиши и клавиши Alt происходит перемещение фокуса ввода на данный элемент управления. Для того, чтобы показать в заголовке сам символ амперсанда, следует ввести два символа &&.
  4. Color - позволяет определять или изменять фоновый цвет элемента управления. Если значение свойства ParentColor равно True, то при изменении фона родительского элемента управления происходит и автоматическое изменение фона дочернего элемента управления.
  5. Enabled - определяет, доступен ли элемент управления.
  6. Font - определяет атрибуты текста, такие, как шрифт, начертание, размер, цвет и т.п.
  7. Height и Width - определяют вертикальный и горизонтальный размер элемента управления в пикселях.
  8. HelpType - определяет, каким образом для элемента управления будет специфицирована тема файла справки. Если значение свойства равно htContext, то ID справки содержится в свойстве HelpContext. Если значение свойства равно htKeyword, то тему справки определяет свойство HelpKeyword.
  9. HelpContext - определяет числовой ID темы справки, отображаемой как контекстно-зависимая справка.
  10. HelpKeyword - определяет тему в файле справки.
  11. Hint - содержит подсказку, отображаемую при расположении и задержании указателя мыши над элементом управления. Подсказка отображается только, если значение свойства ShowHint установлено равным True.
  12. Left - определяет горизонтальную координату элемента управления относительно его родительского элемента.
  13. Parent - указывает родительский элемент управления.
  14. ParentColor и ParentFont - если это свойства равны true, то используются цвет и шрифт родительского элемента управления.
  15. PopupMenu - определяет всплывающее меню (контекстное меню), ассоциируемое с данным элементом управления. Если свойство AutoPopup объекта типа TPopupMenu равно True, то меню будет отображаться автоматически. Если это свойство равно False, то для отображения всплывающего меню следует в обработчике события OnContextPopup вызвать метод Popup.
  16. ShowHint - определяет, будет ли для элемента управления отображаться окно всплывающей подсказки.
  17. Text - содержит строку текста, располагаемую в элементе управления.
  18. Visible - определяет, является ли компонент видимым.
    1. Класс предоставляет большой набор методов, включая следующие:
  19. Click - инициирует событие OnClick.
  20. Create - создает экземпляр класса TControl и выполняет инициализацию его свойств.
  21. DblClick - инициирует событие OnDblClic.
  22. Hide - скрывает элемент управления.
  23. Refresh - сразу перерисовывает на экране элемент управления, вызывая метод Repaint.
  24. Show - делает элемент управления видимым, одновременно устанавливая значение его свойства Visible равным True.

Класс TWinControl

Класс TWinControl является базовым классом всех оконных элементов управления.

Класс предоставляет большой набор  свойств, включая следующие:

  1. ControlCount - указывает количество дочерних элементов управления.
  2. Controls - содержит список всех дочерних элементов управления.
  3. TabOrder - указывает номер элемента управления в табулированном порядке родительского элемента управления.

Класс TApplication

Класс TApplication инкапсулирует объект "Windows-приложение". Посредством этого класса определяется интерфейс между разработчиком и средой Windows. В каждом приложении Delphi всегда автоматически создается один объект Application как экземпляр класса приложения. Для большинства приложений этот объект является экземпляром класса TApplication. Компонент TApplication не отображается в палитре компонентов и не имеет публикуемых свойств. Для того чтобы иметь возможность перехватывать события для приложения, используя среду разработки IDE, можно добавить в любую форму проекта компонент TApplicationEvents.

Класс предоставляет большой набор  свойств, включая следующие:

  1. HelpFile - определяет имя файла справки.
  2. Icon - определяет пиктограмму, отображаемую в строке вместе с именем приложения.
  3. MainForm - определяет главную форму приложения. Она действует как главное окно приложения. При закрытии этой формы завершается и работа приложения.
  4. ShowMainForm - если значение свойства равно True (по умолчанию), то главное окно приложения показывается автоматически при запуске приложения. Чтобы при запуске приложения главное окно приложения было скрыто, следует в главном файле проекта до выполнения метода Application.Run установить значение данного свойства равным False и одновременно для формы, определенной как главное окно приложения, установить значение свойства Visible равным False.
  5. Title - определяет заголовок приложения.

Класс TScreen

Каждое приложение Delphi имеет глобальную переменную Screen типа TScreen. Эта переменная определена как var Screen: TScreen;.

Компонент TScreen, так же как и компонент TApplication, недоступен из инспектора объектов. Этот компонент предназначен для обеспечения доступа к устройству вывода - экрану. Его свойства содержат информацию об используемом разрешении монитора, курсорах и шрифтах, доступных для приложения, списке форм приложения и активной форме.

Информация о работе Объектно-ориентированное программирование