ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ
Исторически сложилось так, что программирование возникло и развивалось как процедурное прог раммирование, которое предполагает, что основой программы является алгоритм, процедура обработки данных.
Объектно-ориентированное программирование (ООП) - это методика разработки программ, в основе которой лежит понятие объекта, как некоторой структуры, описывающей объект реального мира, его поведение. Задача, решаемая с использованием методики ООП, описывается в терминах объектов и операций над ними, а программа при таком подходе представляет собой набор объектов и связей между ними.
Замечание
Строго говоря, для того, чтобы разрабатывать приложения в Delphi на базе предоставляемых средой разработки компонентов, знание концепции ООП не является необходимым. Однако для более глубокого понимания того, как программа взаимодействует с компонентами, что и почему Delphi добавляет в текст программы, материал данной главы весьма полезен.
Класс
Классический язык Pascal позволяет программисту определять свои собственные сложные типы данных - записи (records). Object Pascal, поддерживая концепцию объектно-ориентированного программирования, дает возможность определять классы. Класс - это сложная структура, включающая в себя помимо описания данных описание процедур и функций, которые могут быть выполнены над представителем класса - объектом.
Вот пример описания простого класса:
TT Person=class
Private
f name: string [15];
f address: string [35];
public
procedure show;
end;
Данные класса называются полями, процедуры и функции - методами. В приведенном примере TTPerson - это имя класса, fname и faddress - имена полей, show - имя метода.
Замечание
Согласно принятому в Delphi соглашению имена полей должны начинаться с буквы f (от слова field - поле).
В программе описание класса помещают в раздел описания типов (type).
Объект
В программе представители класса - объекты, объявляются в разделе var. Например, так:
var
student: TTPerson;
professor: TTPerson;
Следует обратить особое внимание на то, что в Object Pascal объект - это динамическая структура. Переменная-объект содержит не данные, а ссылку на данные объекта. Поэтому программист должен позаботиться о выделении памяти для этих данных.
Выделение памяти осуществляется при помощи специального метода класса - конструктора, которому обычно присваивают имя create (создать). Чтобы подчеркнуть особую роль и поведение конструктора, в описании класса вместо слова procedure используется слово constructor. Ниже приведено описание класса TTPerson, в состав которого введен конструктор.
TTPerson = class
private
fname: string [ 15] ;
f address: string [35] ;
constructor create; // конструктор
public
procedure show;// метод
end;
Выделение памяти для данных объекта происходит присваиванием значения результата применения метода-конструктора к типу (классу) объекта. Например, после выполнения инструкции
professor: =TTPerson.create;
выделяется необходимая память для данных объекта professor .
Помимо выделения памяти, конструктор, как правило, решает задачу присваивания полям объекта начальных значений, т. е. осуществляет инициализацию объекта. Ниже приведен пример реализации конструктора для объекта TTPerson.
constructor TTPerson.create ;
begin
fname: = ‘ ‘ ;
faddress:=’’' ;
end;
Реализация конструктора несколько необычна. Во-первых, в теле конструктора нет привычных инструкций New, обеспечивающих выделение динамической памяти (всю необходимую работу по выделению памяти выполняет компилятор). Во-вторых, формально, конструктор не возвращает значения, хотя в программе обращение к конструктору осуществляется как к методу-функции.
После объявления и инициализации объект можно использовать, например, установить значение поля объекта. Доступ к полю объекта осуществляется указанием имени объекта и имени поля, которые отделяются друг от друга точкой. Хотя объект является ссылкой, однако правило доступа к данным с помощью ссылки, согласно которому после имени переменной, являющейся ссылкой, надо ставить значок ^ на объекты не распространяется. Например, для доступа к полю fname объекта professor вместо
professor^. Fname
надо писать
professor.fname
Очевидно, что такой способ доступа к полям объекта более естественен.
Если в программе некоторый объект больше не используется, то можно освободить память, занимаемую полями этого объекта. Для выполнения этого действия используют метод-деструктор free. Например, чтобы освободить память занимаемую полями объекта professor, достаточно записать
professor.free;
Метод
Методы класса (процедуры и функции, объявление которых включено в описание класса) выполняют действия над объектами класса. Чтобы метод был выполнен, надо указать имя объекта и имя метода, отделив одно имя от другого точкой. Например, инструкция
professor Show;
вызывает применение метода show к объекту professor. Фактически инструкция применения метода к объекту - это специфический способ записи инструкции вызова процедуры
Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.