ВУЗ:
Составители:
Рубрика:
26
Так как метод является частью объявления класса, то доступ к методу должен
осуществляться с помощью той же нотации (точка либо ключевое слово wiht), что и в случае
полей объекта.
Для вызова метода объекта надо иметь доступ к экземпляру этого объекта. Тогда можно
вызывать методы этого конкретного экземпляра, указав перед названием метода имя
переменной-экземпляра и точку (например, Form1.Close или ListBox1.Clear).
Из одного метода можно вызывать другие методы класса, как наследуемые, так и
определенные на этом же уровне.
Конкретный класс ничего не “знает” о своих потенциальных потомках. Базовый класс
всех этих потомков может быть определен и оттранслирован задолго до создания классов-
потомков.
Когда делается попытка использовать метод какого-либо объекта, транслятор
просматривает определение соответствующего класса с целью найти там реализацию нужного
метода. Если в классе определен вызванный метод, то он и будет вызван во время выполнения
программы.
Если же метод с указанным именем не задан в данном классе, то транслятор будет искать
реализацию этого метода в непосредственном предшественнике этого класса, в случае неудачи -
в следующем классе- предшественнике и так далее (до класса самого верхнего уровня - TObject).
Если транслятор пройдет весь путь вверх до класса-предшественника самого верхнего уровня и
при этом не найдет определения указанного метода, то будет выдано сообщение “Unknown
identifier” (неизвестный идентификатор).
5 Контрольные вопросы
1. Правильно ли утверждение: “Конструкторы могут использоваться в выражениях в
качестве функций, возвращающих результат”?
2. В каком случае в описании класса обязательно должен быть описан и конструктор?
3. Каково назначение деструктора?
4. Для чего деструктору могут передаваться параметры?
6 Задание
1. Завершите класс TDate, который был определен в лабораторной работе, выполненной
по методическим указаниям к лабораторной работе №134. Завершение предполагает включение
конструкторов и деструкторов, объявленных в интерфейсе класса. Напомним исходное задание:
“Определите структуру данных для класса TDate, хранящего дату. Определите
интерфейсные методы, которые возвращают год, месяц и день по отдельности. Также
определите методы
доступа, которые могут устанавливать как некоторые, так и все
сразу элементы экземпляра класса. Всю работу попробуйте пропустить через
транслятор “Objct Pascal.” Добейтесь успешной трансляции модифицированного
класса.
2. В отдельном модуле Customer дайте полную реализацию класса TCustomer, который
был рассмотрен в лабораторной работе №134 (см. стр. 15 методических указаний к лабораторной
работе №134). Убедитесь, что ваш модуль транслируется.
3. Завершите определение класса TInvoice, начатое в лабораторной работе 134, путем
выполнения его реализации и дальнейшей трансляции.
7 Литература