var

DT : TDateTime;

N : Integer;

begin

DT. Initialize;

N := DT. GetDayNumber

end;

В этом примере объекту DT, который является экземпляром класса TDateTime, посылаются сообщения Initialize и GetDayNumber.

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

1.6 Принципы визуального программирования

Windows использует окна как основной блок построения программ. Фактически даже визуальные средства управления, например, управляющие кнопки, тоже являются окнами. Поэтому окна - это фундаментальные объекты для интерфейса пользователя Windows. Объектно-ориентированное программирование не может рассматривать Windows как настоящую объектно-ориентированную среду. Однако Windows всё-таки использует некоторые понятия окон как объектов, которые взаимодействуют друг с другом и связываются через сообщения.

1.6.1. Проектирование формы

Формы - специальные окна, которые составляют основу приложений Delphi. Форму можно представить как специальный визуальный объект, который может содержать другие объекты, в частности, визуальные управляющие элементы. Другими словами, форма - это вид окна - контейнера. Форма - тоже объект, так как она имеет свойства и реагирует на события точно так же, как управляющие элементы, которые в ней содержатся.

НЕ нашли? Не то? Что вы ищете?

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

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

Время, в течение которого форма настраивается (т. е. период до выполнения программы), называется временем разработки. Delphi даёт возможность настроить свойства формы и управляющих элементов, используя окно Инспектора объекта. Это окно показывает только те свойства, которые могут быть установлены до выполнения программы. Есть дополнительные свойства (для каждого компонента свои), которые не могут быть установлены во время разработки, так как такие начальные значения являются неуместными или неподходящими. Можно устанавливать новые значения для этих свойств во время выполнения, то есть в то время, когда программа запущена на выполнение. Во время выполнения также можно устанавливать новые значения для свойств, определённых во время разработки.

1.6.2. Размещение компонентов на форме

Размещение любых визуальных компонентов на форме включает, в основном, следующие шаги (запишем содержание шагов в форме рекомендаций):

1. Выберите в Палитре компонентов закладку страницы, содержащей управляющий элемент, который предполагается вставить в форму. Если его расположение не известно, то можно просмотреть наборы различных компонентов. Когда Вы в палитре компонентов останавливаете курсор мыши на кнопке компонента, Delphi отображает имя этого компонента в маленьком жёлтом окне. Эта возможность помогает быстро познакомиться с различными компонентами.

2. Нажмите на найденный компонент на текущей странице Палитры компонентов.

3. Переместите мышь на форму.

4. Нажимая левую кнопку мыши, переместите мышь вниз и влево. По мере перемещения мыши Delphi показывает контур компонента. Отпустите кнопку мыши, когда компонент достигнет приемлемых размеров. Каждый компонент имеет собственное, заданное по умолчанию, изображение, заголовок, имя управляющего элемента и другие начальные значения.

1.6.3. Размещение нескольких компонентов одного вида

Для размещения нескольких компонентов одного вида надо:

1. Разместить на форме первый компонент.

2. Выбрать первый компонент, нажав на него мышью. Delphi отобразит петельки (т. е. маленькие чёрные квадраты) на краях управляющего элемента.

3. Нажмите Ctrl - C, чтобы скопировать компонент в буфер обмена (Clipboard).

4. Нажмите Ctrl - V, чтобы вставит новую копию компонента. Эта копия имеет тот же самый заголовок (Caption) и другие свойства, но другое имя компонента.

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

6. Повторите шаги со 2 по 5, чтобы поместить другой компонент.

В конце надо изменить заголовки (Caption) скопированных управляющих элементов.

1.6.4. Удаление компонентов.

Можно удалить либо один компонент, либо несколько компонентов одновременно. Для удаления единственного компонента надо выбрать этот компонент мышью и нажать на клавишу Delete. Нажав Ctrl - Z, можно восстановить только что удаленные компоненты.

1.6.5. Перемещение компонентов.

Перемещать компоненты в Delphi можно либо по одному, или несколько одновременно. Для перемещения одного компонента:

1. Выберите компонент мышью.

2. В то время как курсор мыши находиться всё ещё над выбранным компонентом, удерживайте левую кнопку мыши. Это готовит компонент к перемещению.

3. При нажатой левой кнопке передвиньте мышь, чтобы переместить выбранный компонент.

4. Отпустите левую кнопку мыши, когда компонент займёт желаемое положение.

Для изменения группы компонентов см. технический совет №2 в § 1.4 .

1.6.6. Изменение размеров компонентов.

Delphi даёт возможность изменять за один раз размеры только одного компонента. Для этого:

1. Выберите компонент мышью.

2. Переместите мышь к петельке. Это действие заставляет курсор мыши изменить форму. Новая форма указывает направление изменения размеров компонентов: вертикальное, горизонтальное или диагональное.

3. Удерживая кнопку мыши нажатой, перемещайте мышь в нужном направлении.

4. Отпустите кнопку мыши при достижении желаемого результата.

1.6.7. Выравнивание размера компонентов.

Delphi обеспечивает выравнивание размеров выбранных компонентов. Сначала выбираются компоненты, чьи размеры надо выравнивать. Затем выбирается пункт Edit/Size, чтобы получить диалоговое окно Size. Это диалоговое окно даёт возможность изменить размеры группы компонентов, чтобы они были точно одной высоты или ширины. Опции Width изменяют горизонтальный размер выбранных компонентов. Опции Height (высота) выравнивают вертикальный размер. Рассмотрим таблицу:

Опция

Описание

No Change

Не изменяет размер компонентов

Shrink To Smallest

Приводит размер группы компонентов к высоте и ширине самого маленького

Grow To Largest

Приводит размер группы компонентов к высоте и ширине самого большого компонента

Width

Устанавливает заданную ширину для выбранных компонентов

Height

Устанавливает заданную высоту для выбранных компонентов

1.6.8. Выравнивание расположения компонентов

Сначала надо выбрать компоненты, расположение которых выравнивается. Затем выбирается пункт Edit / Align (выравнивать). Появляется диалоговое окно Alignment, которое даёт возможность выровнять позицию группы компонентов. Горизонтальные опции выравнивают компоненты по их правым, левым краям или по центру. Вертикальные опции выравнивают компоненты по их верхним, нижним граням или по центру.

1.6.9. Визуальные и объектные аспекты форм

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

ООП предлагает классы как каркас для моделирования форм и компонентов. Поля класса, моделирующего форму, поддерживают свойства этой формы. Методы класса, моделирующего форму, поддерживают операции и обработку событий формы. Эти аспекты полей и методов применимы и к компонентам.

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

Листинг объявления класса TForm1 содержит около 300 строк, что говорит о его нетривиальности хотя бы по объёму.

1.6.10. Присоединение программы обработки события.

Каждая форма и компонент имеют предварительно установленный набор событий, которые они могут обрабатывать. По умолчанию, форма и компоненты не отвечают ни на какое заранее установленное событие. Пользователь или проектировщик ответственны за выбор событий, на которые форма и компоненты отвечают.

Чтобы присоединить процедуру обработки события к форме или к компоненту, надо выполнить шаги:

1) Выбрать форму или компонент. Инспектор объекта отображает свойства или события для текущей формы или компонента.

2) Нажать на закладку страницы Events в Инспекторе объекта. Это окно показывает текущие события, которые уже обработаны. Первоначально не имеется никаких обработанных событий, и пункты для различных событий пусты.

3) Дважды нажать мышью на строке события, которое надо обработать. Delphi объявит связанный метод обработки события в классе формы, вставит пустую реализацию метода обработки события и отобразит этот метод.

4) Напечатать операторы, которые заставят метод обработки события ответит на нужное событие. Например, можно напечатать оператор Close, чтобы закрыть форму.

1.7 Свойства компонентов

Классы, которые поддерживают формы и компоненты, используют поля для получения доступа к атрибутам формы и компонентов. Delphi использует ключевое слово property, чтобы отметить поле, свойство которого могло бы появиться в Инспекторе объекта. Чтобы свойство на самом деле появилось в Инспекторе объекта, в объявлении класса используется оператор published. Оператор сообщает Delphi, какие свойства фактически отображены в Инспекторе объекта.

Пример

TForm = class (TScrollingWinControl)

...

property Active: Boolean read FActive;

property Canvas: TCanvas read GetCanvas;

...

published

property Font;

property ShowHint;

...

end;

Свойства служат двум главным целям. Во-первых, они определяют внешний вид формы или компонентов. Во-вторых, они определяют поведение форм и компонентов.

Delphi даёт возможность просматривать и изменять свойства во время разработки. Некоторые из стандартных установок свойств надо настраивать. Например, наиболее часто изменяются такие свойства как заголовок и имя управляющего элемента. Если редактируются свойства, связанные с изображениями на экране, то Delphi сразу обновляет картинку. некоторые свойства, например, Boolean Visible, не меняют изображение компонента во время разработки.

Имеется несколько типов свойств:

- простые свойства;

- свойства с перечислимым выбором;

- вложенные свойства.

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

Свойства с перечислимым выбором имеют определённый заранее набор значений. например, свойства типа Boolean могут иметь значения True или False. Когда в Инспекторе объекта выбирается свойство типа Boolean, то справа появляется стрелка “вниз”. Нажатие на эту кнопку вызывает прокручиваемый список возможных значений: True и False. Другие свойства с перечислимым выбором обычно имеют более длинные списки. Выбор нового значения осуществляется простым нажатием на соответствующей строке списка.

Вложенные свойства имеют вложенные значения и помечаются знаком “плюс” слева от имени каждого вложенного свойства. Чтобы посмотреть значения вложенного свойства, надо дважды нажать на него. Delphi придаёт вложенному свойству формат иерархической структуры и отображает значения. Некоторые вложенные свойства имеют значения, которые сами по себе также являются вложенными свойствами. Например, свойство формы Font имеет значение Style в качестве вложенного свойства.

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

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

Вложенное свойство можно сворачивать и разворачивать двойным нажатием на его имя.

1.8 События

Программы DOS обычно линейны - они выполняются в определённой последовательности. Приложения Windows, включая программы Delphi, управляются событиями. Программа Windows способна управлять многими альтернативными действиями. Например, нажатие кнопки мыши, вызов меню опции и нажатие клавиши Windows переводит в события, а затем обрабатывает их.

Форма и каждый компонент Delphi имеют предварительно установленный набор событий, которые могут быть обработаны. По умолчанию имеются стандартные обработчики событий. Установка явной связи события с формой или компонентом - это часть настройки формы или компонента. Страница событий (Events) в Инспекторе объектов перечисляет события, которые могут быть обработаны выбранной формой или компонентом. Обрабатываемые события имеют непустую строку в поле значения.

Имя метода обработки события должно указывать на компонент и событие. Это внесёт ясность и упростит чтение.

События, показанные в Инспекторе объекта, можно захватить, определив метод обработки события. Delphi поддерживает два способа выбора такого метода:

1) Двойное нажатие на поле значения. Delphi вставит заданное по умолчанию имя метода обработки события. В большинстве случаев заданное по умолчанию имя можно оставить без изменения.

2) Ввод имени метода обработки события и затем нажатие Enter.

Любой способ заставляет Delphi выполнить следующее:

1) вставить имя метода обработки события в объявлении класса формы;

2) вставить каркас программы реализации метода обработки события и поместить курсор внутри блока begin - end метода обработки события.

Обработка захватываемого события включает размещение соответствующих операторов в методе обработки события.

Пример:

interface

type

TForm1=class (TForm)

...

procedure CloseBtnClick(Sender: TObject)

...

end;

implementation

...

procedure TForm1.CloseBtnClick(Sender: TObject);

begin

Close; {вставлено пользователем}

end;

...

В этом методе для требуемого отклика (закрытия формы) пользователем вставлен только один оператор - оператор Close.

1.9 Архитектура приложения

Рассмотрим различные виды форм, их использование и вызов. Каждое приложение Delphi имеет основную форму, которая появляется изначально, когда программа начинает выполняться.

1.9.1 Формы как модальные диалоговые окна

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

Имеются два вида диалоговых окон: модальные и немодальные. Модальные диалоговые окна (Modal) должны быть закрыты прежде, чем пользователь сможет обращаться к любому уже существующему окну приложения. Причина этого ограничения в том, что модальные диалоговые окна обычно имеют дело с критическими данными, которые должны быть обработаны прежде, чем пользователь продолжит выполнение программы. Немодальные диалоговые окна (Modeless) свободны от этого ограничения и дают возможность обратиться к уже существующим окнам программы. Причина такой гибкости в том, что немодальные диалоговые окна не обрабатывают критических данных. Кроме этого использование немодальных диалоговых окон иногда очень удобно. Например, диалоговое окно Find, используемое для поиска текста в текстовом редакторе, удобно оставить видимым, чтобы пользователь легко мог найти все случаи встречи с искомым текстом.

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

Немодальное диалоговое окно даёт возможность обратиться к уже существующим окнам программы без его закрытия.

 
Итак:

Delphi даёт возможность создать вторичные формы и использовать их как модальные диалоговые окна. Рассмотрим процесс использования формы как модального диалогового окна.

Пусть программа F1 имеет две формы: основную форму и вторичную форму, которая работает как модальное диалоговое окно. Основная форма имеет кнопку с заголовком Close. Когда пользователь нажимает на эту кнопку, программа вызывает вторичную форму, которая содержит текст “Good Bye!” и кнопку ОК. Когда пользователь нажимает на кнопку ОК, закрывается вторичная модальная форма, вместе с ней закрывается и основная форма. На этом программа заканчивается.

- Main Form - Modal Dialog Form

 

Close

 
Good Bye!

OK

 
 

Основная форма Вторичная форма

Основная форма имеет модуль UForm11. При создании вторичной формы используется пункт File/New Form главного меню Delphi. Модуль вторичной формы может быть назван UForm12.

После визуального проектирования форм надо добавить методы обработки события управления кнопками. Каждая кнопка должна обработать событие нажатия мыши. После выбора формы надо выбрать на ней кнопку. Затем на странице Events в Инспекторе объекта на строке OnClick на правом белом поле надо сделать двойной щелчок и произвести добавления в коде соответствующего модуля.

Листинг. Исходный текст для модуля UFORM11.PAS.

__________________________________________________________________

unit Uform11;

interface

uses

SysUtils,..., Uform12;{добавляется вручную}

type

TForm1 = class(TForm)

. . .

var

Form1: TForm1;

implementation

. . .

procedure TForm1.CloseBtnClick(Sender: TObject);

begin

Form2.ShowModal; {добавляется вручную}

Close; {добавляется вручную}

end;

end.

__________________________________________________________________

Листинг. Исходный текст для модуля UFORM12.PAS.

__________________________________________________________________

unit Uform12;

interface

. . .

var Form2: TForm2;

implementation

. . .

procedure TForm2.OKBtnClick(Sender: TObject);

begin

Close; {добавляется вручную}

end;

end.

В первом модуле в оператор Uses включено имя модуля UForm12. Это необходимо, чтобы разрешить основной форме вызвать вторичную форму, обратившись к переменной Form2. Эта переменная экспортируется модулем Uform12 и является образцом класса (экземпляром объекта, объектом, экземпляром класса) TForm2. Она поддерживает вторичную форму.

Метод обработки события TForm1.CloseBtnClick вызывает вторичную форму как диалоговое окно. Оператор Form2.ShowModal посылает ООР - сообщение ShowModal объекту Form2, который представляет вторичную форму.

Это ООР - сообщение заставляет вторичную форму вызывать унаследованный метод ShowModal, который отображает форму как модальное диалоговое окно. При проектировании вторичной формы надо установить свойство BorderStyle в bsDialog. Это придаёт вторичной форме вид диалогового окна.

После закрытия вторичного окна управление передаётся оператору Close модуля UForm11, в результате чего основная форма закрывается. На этом выполнение программы заканчивается.

1.9.2 Формы как немодальные диалоговые окна

Среда Delphi позволяет создавать вторичные формы и использовать их как немодальные диалоговые окна. Рассмотрим пример программы F2. Основная форма программы имеет две кнопки с заголовками Closе и Show Form. Когда нажимается вторая кнопка, программа вызывает вторичную форму, используемую как немодальное диалоговое окно и содержит текст “Good Bye !” и кнопку “ОК”.

- Main Form - Modeless Dialog Form

 

Good Bye!

OK

 
 

Close Show Modal

Основная форма Вторичная форма

Когда пользователь нажимает кнопку ОК, закрывается немодальная форма. При нажатии кнопки “Close” закрывается основная форма, немодальная диалоговая форма (если она открыта), и программа завершается.

Основная форма имеет модуль UForm21, а вторичная - UForm22. После визуального проектирования форм методы обработки события управления кнопками добавляются аналогично программе F1, т. е. на событии OnClick страницы Events надо дважды щёлкнуть на незаполненном поле значения.

Рассмотрим интересующие нас фрагменты модулей.

Листинг. Исходный текст для модуля UFORM21.PAS.

__________________________________________________________________

unit Uform21

interface

uses

SysUtils, ... , Uform22; {добавляется вручную}

. . .

implementation

. . .

procedure TForm1.ShowFormBtnClick(Sender: TObject);

begin

Form2.Show; {добавляется вручную}

end;

procedure TForm1.CloseBtnClick(Sender: TObject);

begin

Close; {добавляется вручную}

end;

end.

Листинг . Исходный текст для модуля UFORM22.PAS.

__________________________________________________________________

unit Uform22;

interface

. . .

var

Form2: TForm2;

implementation

. . .

procedure TForm2.OKBtnClick(Sender: TObject);

begin

Close; {добавляется вручную}

end;

end.

__________________________________________________________________

В модуле UForm21 обрабатывающий событие метод TForm1.ShowFormBtnClick вызывает вторичную форму как диалоговое окно. Оператор Form2.Show посылает ООР - сообщение Show объекту Form2, который представляет вторичную форму. Вызывается унаследованный метод Show, который отображает вторичную форму как немодальное диалоговое окно.

Если бы после строки с оператором Form2.Show стоял оператор Close, приложение выдало бы немодальную форму диалогового окна и затем быстро закрыло бы эту форму наряду с основной формой.

Оператор Close в модуле UForm22 закрывает форму немодального диалогового окна.

1.10 Особенности Object Pascal

1.10.1 Булевы типы

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

тип

диапазон значений

размер в байтах

Boolean

предпочтительный булев тип в один байт

1

ByteBool

Boolean размером в байт

1

WordBool

Boolean размером в слово

2

LongBool

Boolean размером в два слова

4

Функция всех булевых типов идентична основному булеву типу: представление логического значения True и False. Булевы типы с определённым размером используются для совместимости со средой Windows на низком уровне.

1.10.2 Тип String

Object Pascal обеспечивает поддержку двух существенно различных строковых типов.

- тип string Паскаля;

- оканчивающиеся нулевым символом строки языка С.

Тип string - это родной для Паскаля тип строк длиной до 255 символов. С - строки (ASIIZ - строки) - это просто массивы символов размером до 64 Кб.

Потребность в С - строках возникает при непосредственном использовании Windows API (Application Programming Interface - интерфейс прикладного программирования). Встроенный тип string проще использовать, и в большинстве случаев его оказывается достаточно для представления последовательности символов.

В дополнение к встроенным подпрограммам, оперирующим со строками, существует 10 подпрограмм операций со строками, экспортируемых стандартным модулем SysUtils. Например, функция

function LowerCase (const S: String): String

конвертирует все символы строки в нижний регистр.

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

Object Pascal - это ООЯП, т. к. он представляет все средства для поддержки объектно-ориентированной модели программирования. Компоненты Delphi являются специализированными объектами. Их функционирование определяется объектно-ориентированной архитектурой библиотеки визуальных компонентов (Visual Component Library - VCL).

1.11.1 Определение объектно-ориентированного программирования

ООП может быть охарактеризовано утверждениями:

1) ООП использует объекты как строительные блоки. Объект - это активная единица данных.

2) Объект - это комбинация из элементов данных и операций с этими элементами, упакованных вместе для удобства использования. Объединение данных и кода называется инкапсуляцией.

3) Каждый объект является представителем (экземпляром) определенного класса. Во время выполнения программы объекты взаимодействуют друг с другом, вызывая методы, которые являются подпрограммами, характерными для определённого класса.

4) Классы связаны друг с другом соотношениями наследования, с помощью которых объекты могут расширяться и описания существующих объектов многократно использоваться при описании новых объектов. Наследование является одним из механизмов, посредством которого один класс объектов может включаться в работу другого класса объектов. Наследование представляет мощный механизм моделирования отношений, существующих в реальном мире.

5) Представители класса могут рассматриваться не только как представители их непосредственного класса, но и как представители любого из классов - предков, таким образом поддерживая полиморфизм.

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

Фундаментальным понятием ООП является понятие объекта.

Объект - это комбинация данных и кода. Другими словами, объект, называемый ещё представителем (какого-нибудь класса), - это порция данных, значение которых определяют его текущее состояние, и набор подпрограмм, называемых методами, оперирующих с этими данными и определяющими поведение объекта, т. е. его реакцию на внешние воздействия.

 
 

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

1.11.2 Объекты

Экземпляры объекта (объекты), считаются активными образованиями с определенными обязанностями.

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

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

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

Как источник действий объект является набором методов, т. е. подпрограмм, разработанных для операций с полями. Все методы совместно определяют поведение объекта..

1.11.3 Классы

Класс, в одном из значений этого термина, обозначает структурированный тип данных в Object Pascal. Класс является описанием того, как будет выглядеть и вести себя его представитель. Класс можно рассматривать как образование, отвечающее за создание своих новых представителей (экземпляров) с помощью средств, называемых конструкторами.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5