в Delphi, методът е процедура или функция, която извършва операция върху обект. Методът на клас е метод, който работи върху референтен клас вместо на препратка към обект.
Ако четете между редовете, ще откриете, че методите на клас са достъпни дори когато не сте създали екземпляр от класа (обекта).
Методи за клас vs. Обектни методи
Всеки път, когато създавате a Delphi компонент динамично, използвате метод на клас: Конструкторът.
Конструкторът Create е клас метод, за разлика от почти всички други методи, които ще срещнете в програмирането на Delphi, които са обектни методи. Методът на клас е метод на класа и достатъчно подходящо, обектният метод е метод, който може да бъде извикан от инстанция на класа. Това е най-добре илюстрирано с пример с класове и обекти, маркирани с червено за яснота:
myCheckbox: = TCheckbox. Създаване (нула);
Тук обаждането към Създаване се предхожда от името на класа и период ("TCheckbox."). Това е метод на класа, обикновено известен като конструктор. Това е механизмът, чрез който се създават инстанции на клас. Резултатът е екземпляр от класа TCheckbox. Тези екземпляри се наричат обекти. Сравнете предишния ред код със следния:
myCheckbox. пребоядисване;
Тук се извиква методът Repaint на обекта TCheckbox (наследен от TWinControl). Обаждането към Repaint се предхожда от обектната променлива и период ("myCheckbox.").
Методите на класа могат да бъдат извиквани без инстанция на класа (например, "TCheckbox. Създаване "). Методите на класа могат също да бъдат извикани директно от обект (например, "myCheckbox. Име на класа "). Обектните методи обаче могат да бъдат извикани само от инстанция на клас (например, "myCheckbox. Пребоядиса ").
Зад кулисите е конструкторът Create разпределяне на паметта за обекта (и извършване на всяка допълнителна инициализация, както е посочено от TCheckbox или неговите предци).
Експериментиране със собствените ви методи на клас
Помислете за AboutBox (персонализиран формуляр „За това приложение“). Следният код използва нещо като:
процедура TfrMain.mnuInfoClick (Подател: TObject);Това, разбира се, е много приятен начин да свършите работата, но само за да направите кода по-лесен за четене (и управление), би било много по-ефективно да го промените на:
започвам
AboutBox: = TAboutBox. Създаване (нула);
опитвам
AboutBox. ShowModal;
накрая
AboutBox. Освободете;
край;
край;
процедура TfrMain.mnuInfoClick (Подател: TObject);Горният ред нарича метода на класа "ShowYourself" на класа TAboutBox. „ShowYourself“ трябва да бъде маркиран с ключовата дума „клас":
започвам
TAboutBox. Покажи се;
край;
клас процедура TAboutBox. Покажи се;
започвам
AboutBox: = TAboutBox. Създаване (нула);
опитвам
AboutBox. ShowModal;
накрая
AboutBox. Освободете;
край;
край;
Неща, които трябва да се запазят в ума
- Дефиницията на метод на клас трябва да включва резервиран класен текст преди процедурата или функционалната ключова дума, която стартира дефиницията.
- Формата AboutBox не е създадена автоматично (Project-Options).
- Поставете AboutBox единицата към клаузата за употреба на основния формуляр.
- Не забравяйте да декларирате процедурата в интерфейсната (публична) част на блока AboutBox.