
Поля, свойсва, методы _3.ppt
- Количество слайдов: 17
Объектноориентированное программирование в Object Pascal Основные понятия объектно -ориентированного программирования
Концепцию ООП характеризует следующее: n n n Оно использует объекты как строительные блоки. Объектный тип — это совокупность элементов данных и методов (для операций над данными), скомпонованных вместе для удобства использования; объединение данных и подпрограмм их обработки называется инкапсуляцией. Каждый объект - переменная - это представитель (экземпляр) определенного класса.
Концепцию ООП характеризует следующее n n Классы связаны друг с другом соотношениями наследования, с помощью которых объекты могут расширяться; при этом описания существующих объектов могут многократно использоваться при описании новых объектов; наследование предоставляет механизм моделирования отношений реального мира. 5) Представителями класса могут быть представители как непосредственного класса, так и любого класса предка.
Суть ООП составляют 3 принципа : n Инкапсуляция n Наследование n Полиморфизм.
Инкапсуляция означает объединение данных и действий над ними в одном объектном типе n Class - это ключевое слово для объявления объектного типа. n Class — это объектный структурированный тип, который может иметь в своем составе поля, свойства и методы
Класс инкапсулирует (encapsulate) данные и код, из совокупности которых формируются представители (member - члены) класса. Пример описания класса: Туре n TMy. Object = class (TObject) n My. Field : integer; // - поле; n Color: TColor; // // - свойство; n Function My. Method : integer; // - метод; n end: // - конец n
Понятие Class Для использования переменной нового типа в программе ее надо объявить. Переменная типа класс - это переменная объектного типа и называется экземпляром класса или объектом. Например: n Var AMy. Object : TMy. Object; n
В Object Pascal объекты (экземпляры классов) могут быть только динамическими n n n Для обращения к полям и методам объекта в Object Pascal не надо использовать символ '^'. Например, для обращения к полю My. Field и методу My. Method надо писать: AMy. Object. My. Field : = AMy. Object. My. Method(Data); //- в Object Pascal; вместо: AMy. Object^. My. Field : = AMy. Object^. My. Method(Data); // - в Pascal.
Поля n n Поля объекта аналогичны полям записи. Это данные, уникальные для каждого экземпляра класса. Поле объявляется как обычная переменная и может быть любого типа, например, integer, Char, String. Пример объявления полей: Type Tnew. Class = class (TObject); Private FCode : integer; FSirav : char; FStroka : string; End;
Свойства n n Свойства - это высокоуровневые атрибуты компонентов класса. В объектах Delphi пользователь полностью отгорожен от полей объекта с помощью свойств. Внешне свойства (property) напоминают поля, но внутри содержат методы, обеспечивающие доступ к свойствам. При каждом обращении к такому методу выполняются соответствующие действия, т. е. к свойствам класса доступ возможен только через методы.
Пример объявления свойств: n Type Tnew. Class = class (TObject); Private FCode : integer; FSimv : char; FStroka : string; Publiched n Poperty Code : integer read FCode write FCode; Poperty Simv : char read FSimv write FSimv; Property Stroka : string read FStroka write FStroka; End;
Методы n Метод – это процедура или функция, которая определена как элемент класса. Описание метода аналогично описанию обычных процедур или функций модуля. Внутри одного класса можно объявить столько методов, сколько надо.
Object Pascal Delphi поддерживает 4 типа методов переопределяемые (override), n виртуальные (virtual), n динамические (dynamic) n абстрактные (abstract). n
Переопределяемые (override ) По умолчанию все методы класса являются статическими и вызываются как обычные подпрограммы. Они допускают переопределение в классахпотомках.
Виртуальные методы n имеют при описании слово virtual. Для виртуальных методов обязателен конструктор, с помощью которого формируется VMT (Virtual Method Table таблица виртуальных методов). VMT - это массив указателей, по одному указателю на каждый из объявленных в классе виртуальных методов. Вызов виртуальных методов формируется с помощью VMT во время выполнения программы. Это несколько замедляет выполнение программы.
Динамические методы n - это разновидность виртуальных методов, которая функционально эквивалентна виртуальным методам, но отличается реализацией. При использовании динамических методов формируется и используется DMT. (Dynamic Method Table - таблица динамических методов). Она эффективнее использует ОП и содержит для каждого динамического метода указатель и индекс (номер метода в классе). Динамические методы вызываются еще медленнее, но позволяют более экономно расходовать ОП.
Абстрактные методы n определены в классе с помощью директивы abstract; они не содержат никаких действий, для них не надо писать текст подпрограммы, эти методы никогда не вызываются и должны быть переопределены в потомках класса. Абстрактными могут быть только виртуальные и динамические методы. Вызов абстрактного метода приведет к ошибке на этапе выполнения.
Поля, свойсва, методы _3.ppt