Понятие класс, описание класса
Объекты окружающего нас физического мира обладают 3-мя характеристиками: они имеют набор свойств, способны разными методами изменять эти свойства и реагировать на события, возникающие как в окружающем мире, так и внутри самого объекта. В таком виде в языке Object Pascal реализовано понятие объекта, как совокупности свойств (структур данных, характерных для этого объекта), методов их обработки (подпрограмм изменения свойств) и событий, на которые данный объект может реагировать и которые часто приводят к изменению свойств объекта. Объекты могут иметь одинаковую структуру и отличаться только значениями свойств. Поэтому в Object Pascal введено понятие класс, а каждый конкретный объект, имеющий структуру этого класса, называется экземпляром класса. Классом называют специальный тип, который содержит поля, методы и свойства. Object Pascal характеризуется разветвленной структурой типов данных. Тип определяет: множество допустимых значений, которые может иметь класс (или объект), множество допустимых операций, которые применимы к нему, а также формат внутреннего представления данных в памяти компьютера. Поля класса служат для хранения информации о классе и представляют собой данные, содержащиеся в классе. Методами называются процедуры и функции, предназначенные для обработки полей. Описание метода похоже на описание обычной процедуры и часто называется процедурой-обработчиком события или просто процедурой. Заголовок метода (процедуры) располагается системой Delphi в описании класса. Сама процедура, реализующая метод, располагается программистом и системой Delphi в разделе реализации модуля (в разделе implementation). Имя метода (процедуры) в разделе реализации модуля является составным и включает в себя тип класса. Свойства занимают промежуточное положение между полями и методами. С одной стороны, свойства можно использовать как поля, например, присваивать им значения, с другой стороны, внутри класса доступ к значениям свойств выполняют методы класса. Каждому свойству соответствует поле, содержащее значение свойств, и два стандартных метода read и write, обеспечивающих чтение значения поля, связанного со свойством, или запись нового значения в это поле. В представлении программиста класс – это функционально законченный фрагмент программы, служащий образцом для создания подобных себе экземпляров. Используя сотни стандартных классов, созданных программистами корпорации Borland, или создав свой класс, программист может включать его экземпляры в разные программы или в разные места одной и той же программы. Каждый компонент системы Delphi принадлежит к строго определенному классу, а все конкретные экземпляры компонентов, вставляемых в форму, получают имя класса с добавленным числовым индексом. По используемому в Delphi соглашению все имена классов начинаются с буквы T (это первая буква слова Type (пер. Тип)). Например, имя TForm1 означает имя класса, созданного по образцу стандартного класса TForm. Стандартный класс TFormреализует все нужное для создания и функционирования пустого Windows – окна. Описание класса Form1, которое осуществляет Delphi, зависит от числа компонентов, расположенных в окне формы Form1 и числа методов. Например, если в окне формы Form1 разместить два компонента ComboBox1, ComboBox2, два компонента Label1, Label2, две командные кнопки Button1, Button2 и три заготовки процедур, обрабатывающих события OnClick (пер. На щелчок), кнопок Button1, Button2 и события OnCreate (пер. При создании) формы Form1, то Delphi впишет в модуль следующее описание класса: Type TForm1 = class (TForm) // Начало описания класса Label1:TLabel; Label2:TLabel; ComboBox1: TComboBox; ComboBox2: TComboBox; Button1: TButton; Button2: TButton; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); Private { Private declarations } Public { Public declarations } end; // Конец описания класса Это описание располагается системой Delphi в секции описания типов интерфейсного раздела модуля (после слова type). В нем ограничителями комментариев являются: символ // и фигурные скобки {}. В первой строке этого описания за ключевым словом class (пер. Класс) в скобках указывается имя класса предка TForm. Это означает, что класс TForm1 является потомком класса TForm. Говорят, класс TForm1порожден (т.е. создан по образу) от класса-предка TForm и унаследовал все его возможности (поля, методы, свойства). Следующие строки указывают, что компоненты ComboBox1, ComboBox2 являются экземплярами стандартного класса TComboBox, компоненты Label1 и Label2 являются экземплярами стандартного класса TLabel, а компоненты Button1, Button2 является экземплярами класса TButton. Строки procedure Button1Click(Sender:TObject); и procedure Button2Click(Sender:TObject); являются заголовками процедур-обработчиков событий OnClick командных кнопок Button1 и Button2. Строка procedure FormCreate(Sender: TObject); является заголовком процедуры-обработчика события OnCreate формы Form1.За именем процедуры в круглых скобках указано описание параметра вызова процедуры: (Sender:TObject). Параметр Sender (пер. Передающий тип) принадлежит базовому классу TObject. С его помощью подпрограмма, например Button1Click,определяет, какой компонент создал событие OnClick. Описание класса TForm1 содержит два раздела: закрытый (private) и открытый (public). Эти разделы определяют области видимости элементов описания класса и обычно заполняются программистом при необходимости. Областью видимости (локализации) элементов называется связь места их описания и места их использования. Заканчивается описание класса двумя символами end;.
|