Составляющие класса

КЛАССЫ И ОБЪЕКТЫ

Классы – это особое «изобретение» программистов для упрощения разработки сложных программ и улучшения их качества. В основе классов лежат три фундаментальных принципа, которые называются инкапсуляция, наследование и полиморфизм.

Инкапсуляция

Класс представляет собой единство трёх сущностей – полей, методов и свойств. Объединение этих сущностей в единое целое и называется инкапсуляцией. Инкапсуляция позволяет во многом изолировать класс от остальных частей программы, сделать его «самодостаточным» для решения конкретной задачи. В результате класс всегда несёт в себе некоторую функциональность. Например, класс T Form содержит (инкапсулирует в себе) всё необходимое для создания Windows-окна, класс T Memo представляет собой полнофункциональный текстовый редактор и т.д.

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

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

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

T Child Class = class (T Parent Class).

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

Все классы Object Pascal порождены от единственного родителя – класса T Object. Этот класс не имеет полей и свойств, но включает в себя методы самого общего назначения, обеспечивающие весь жизненный цикл любых объектов – от их создания до уничтожения.

Для примера на рис. 10.1 показан небольшой фрагмент дерева классов Delphi. Класс T Persistent обогащает возможности своего родителя T Object: он «умеет» сохранять данные в файле и получать их из него, в результате это умеют делать и все его потомки. Класс T Component, в свою очередь, умеет взаимодействовать со средой разработчика и передаёт это умение своим потомкам. T Control не только способен работать с файлами и средой разработчика, но он ещё умеет создавать и обслуживать видимые на экране изображения, а его потомок T win Control может создавать Windows- окна и т.д.

 

Рис 10.1.

 

Полиморфизм

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

Составляющие класса

Поля

Полями называются инкапсулированные в классе данные. Поля могут быть любого типа, в том числе – классами, например:

Type T MyClass – class aIntField; Integer;

aStrField; String; aObjField: T Object; ------ -- -- -- -- -- End;

Класс-потомок получает все поля всех своих предков и может дополнять их своими, но не может переопределять их или удалять. Чем ниже в дереве иерархии располагается класс, тем больше данных получают в своё распоряжение его объекты.

Методы

Инкапсулированные в классе процедуры и функции называются методами. Они объявляются так же, как и обычные подпрограммы:

Type

T MyClass = class Function MyFunc (aPar: Integer): Integer;

Procedure MyProc; End.

Доступ к методам класса, как и к его полям, возможен с помощью составных имён:

Var aObject: M MyClass;

Begin -- -- -- -- aObject, MyProc -- -- -- -- End;

Свойства

Свойства – это специальный механизм классов, регулирующий доступ к полям. Свойства объявляются с помощью зарезервированных слов property, read и write. Свойство связано с некоторым полем и указывает те методы класса, которые должны использоваться при записи в это поле или при чтении из него. Например:

Type

T aClass = class IntField; Integer; Function GetField: Integer;

Procedure SetField (Value: Integer)

Property IntegerValue: Integer read GetField write SetFIELD; End;

Объявление класса

Любой вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (декларированные), private (личные), protected (защищённые), public (доступные), automated (автоматизированные).

В Object Pascal разрешается сколько угодно раз объявлять любую секцию, причём порядок следования секций не имеет значения. Любая секция может быть пустой.

При объявлении класса-потомка разрешается перемещать элементы класса из одной области видимости в другие.

Класс может объявляться только в интерфейсной области модуля или в самом начале области реализации. Нельзя определять классы в разделе описаний программ.

 


<== предыдущая лекция | следующая лекция ==>
О СУДЬБАХ РУССКОЙ ПСИХОЛОГИИ | Молодежная культура как феномен сферы свободного времени




Дата добавления: 2019-07-26; просмотров: 285;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.009 сек.