Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка 1.doc
Скачиваний:
33
Добавлен:
13.02.2015
Размер:
689.66 Кб
Скачать

Программа работы

  1. Создать новый проект и сохранить все его файлы в папке с именем ‘…\Лабораторная работа № 5’.

  2. Создать новый модуль Unit2 и в его секции interface объявить класс с любым именем, который будет содержать все разделы доступа.

  3. В каждом разделе объявить по одному полю с различными именами и типами String, Word, Integer и Double.

Раздел доступа

Тип поля

Private

String

Protected

Word

Public

Integer

Published

Double

Примечание: Поле с типом Double для явного раздела published необходимо объявить в разделе published по умолчанию.

  1. Подключить модуль Unit2 к модулю главной формы Unit1 и создать на ней компоненты Edit1, Edit2 и кнопку Button1.

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

  3. На основе этой попытки записать в отчет созданный класс и таблицу доступа к его полям из модуля Unit1.

  4. Присвоить первому доступному полу класса значение, которое будет задано пользователем в компоненте Edit1, вывести в компонент Edit2 значение самого поля, освободить память под объект и запустить программу на выполнение.

  5. Записать в отчет обработчик нажатия кнопки Button1 и результат выполнения программы.

  6. Повторить пункты 7 и 8 для остальных доступных полей класса.

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

  1. Скопировать созданный класс в раздел implementation модуля Unit1 и выполнить пункты 7 8 для остальных полей класса. Объяснить различия в таблицах доступа.

  2. Восстановить модуль Unit1, удалив из него созданный класс.

  3. В разделе public класса, созданного в модуле Unit2, объявить дополни­тельно три метода – одну процедуру и две функции с любыми именами и с типами для возвращаемого значения String и Word.

  4. В секции implementation этого же модуля определить эти методы так, чтобы процедура инициализировала все поля класса, а функции возвра­щали значения тех, которые объявлены в разделах protected и private.

  5. На основе инициализации записать в отчет объявленный класс, опреде­ленные методы и таблицу доступа к его полям из методов самого класса. Объяснить отличия от двух предыдущих таблиц.

  6. Подключить модуль Unit2 к модулю главной формы Unit1 и дополни­тельно создать на ней два компонента – Edit3 и Edit4.

  7. В обработчике нажатия кнопки Button1 объявить объектную переменную с типом созданного класса, создать объект, вызвать процедуру инициализации, вывести значения всех полей объекта в компоненты Edit1, Edit2, Edit3 и Edit4, освободить память под объект и запустить программу на выполнение.

  8. Записать в отчет обработчик нажатия кнопки Button1 и результат выполнения программы.

Контрольные вопросы

  1. Запишите синтаксис объявления класса и объясните назначение всех разделов доступа.

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

  3. Записать таблицу доступа к элементам класса из разных модулей программы.

  4. Записать таблицу доступа к элементам класса из одного модуля программы.

  5. Записать таблицу доступа к элементам класса методов самого класса.

  6. Запишите синтаксис объявления и определения статических методов класса.

  7. Объясните, чем статические методы класса отличаются от обычных процедур и функций языка Pascal.

  8. Запишите синтаксис объявления и определения конструктора класса и объясните, какие действия он выполняет в зависимости от способа его вызова.

  9. Запишите синтаксис оператора withи объясните, когда его необходимо использовать.

  10. Запишите синтаксис объявления и определения деструктора класса и объясните, какие действия он выполняет.

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

  12. Записать, как будет заменено компилятором обращение к статическим методам, и объяснить назначение указателя Self.