Классы и объекты

Объекты

Компилятор FPC поддерживает объектно-ориентированное программирование (ООП). Объекты могут быть интерпретированы, как специальный тип записи, в которой опеределены поля со ссылками на используемые методы. Запись содержит все поля, которые декларируются при объявлении объектов, и указатели на методы, которые ассоциируются с этим объектным типом.

ООП позволяет:

  • Сократить объем и трудоемкость подготовки программ, имеющих дело с множеством связанных друг с другом объектов.
  • Сделать объекты практически независимыми друг от друга.
  • Защитить внутреннюю реализацию объектов.

Создаваемое приложение состоит из объектов, которые взаимодействуют друг с другом. Каждый объект – экземпляр класса с конкретными данными,создается в динамической памяти.

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

Классы

Класс – это обобщение объекта.

Класс – тип, сочетающий в себе абстрактные данные и методы. Экземпляр класса – объект. Он содержит конкретные данные.

Класс содержит в себе члены. Членом класса может быть:

  • Поле (Field) с данными. Согласно принятому соглашению имена полей начинают с буквы F.
  • Свойство (Property) для доступа к полям.
  • Метод (процедура или функция), определяющее поведение объекта.
  • Событие (Event), на которые объект реагирует.

Члены класса могут группироваться. Группы регулируют видимость членов класса:

  • Private – частные. Доступны внутри модуля, где они находятся.
  • Protected –защищенные. Доступны внутри модуля, где они находятся, и для порожденных классов.
  • Public – общедоступные. Доступны в любом месте программы, где доступен класс.
  • Published – опубликованные. Дополнительно к public порождают информацию во время выполнения программы для проверок.

В классе-потомке можно изменять видимость свойств в сторону повышения. Например, свойство из раздела protected можно перенести в public, но не в private. Доступ к члену класса по составному имени: <Класс>.<Член класса>

Классы и объекты могут наследовать поля и методы у своих предков. Это означает, что эти поля и методы могут быть использованы так, будто они были включены в классы или объекты, объявляемые как  потомки.

Классы FPC организованы иерархически. Верхушка иерархического дерева – абстрактный класс TObject, определенный в модуле System. В нем определены средства, необходимые всем классам: конструктор, деструктор и др. Основные классы:

Класс Описание
TCollection Коллекция именованных объектов.
TComponent Базовый класс для компонент ИСР.
TStream Базовый класс, предок всех потоковых классов.
TFileStream Работа с файлами. Потомок TStream.
TMemoryStream Работа с памятью. Потомок TStream.
TStringStream Работа со строками ANSIString. Потомок TStream.
TList Коллекция указателей.
TParser Синтаксический анализатор.
TPersistent Базовый класс, предок всех потоковых систем.
TStrings Абстрактный класс для массивов строк String.
TThread Работа с нитями.

Для классов поддерживаются:

  • Инкапсуляция. Скрытие данных и методов. Для данных  используются именно их методы обработки.
  • Наследование. Потомок наследует все данные предка.

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

Twitter SEO Community Ваау! News2.ru Chipp Korica SMI2 Google Bookmarks Digg I.ua Закладки Yandex Linkstore Myscoop Communizm Ru-marks Webmarks Ruspace Linkomatic Kli.kz Web-zakladka Zakladok.net Reddit delicious Ma.gnolia Technorati Slashdot Yahoo My Web БобрДобр.ru Memori.ru rucity.com МоёМесто.ru Mister Wong

Copyright © 2009-2010 Программирование на паскале.