Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Перевантажуємі методи

Методи класу.

Цікавим нововведенням в Delphi є так звані методи класу, особливість яких полягає в тому, що для їх виклику немає необхідності створювати об'єкт (екземпляр класу), а можна використовувати їх як звичайні підпрограми. Для опису таких методів використовується ключове слово class перед заголовком методу:

Туре

<Ім’я класу> = class

class <Заголовок метода>; <Опис метода класу>

End;

 

При реалізації методів класу в описовій частині класу ключове слово class також вказується:

class <Ім’я класа>.<3аголовок метода>;

Методи класу застосовуються для створення бібліотек спеціалізованих методів, що не вимагають доступу до яких-небудь даними, які можуть зберігатися в межах обьекга. Як приклад наведемо опис класу MihdClass, метод Get: якого є методом класу (лістинг 2.2).

Лістинг 2.2. Приклад опису методу класу

unit OaclaringClaaaltathoda;

Interface

Type

MthdClass = class

class Function Get5: Double;

End;

Implementation

class Function MthdClaaa. Get5: Integer;

(Опис методу Gets класа MthdClass)

Begin

Result:=5;

end;

end.

Для виклику методу класу потрібно вказати назву класу і назва методу зі списком необхідних параметрів. Назва класу і його метод розділяється крапкою:

<Клас>.<Метод>(<Список параметрів»);

Використання методу класу показано в наступному листингу 2.3.

Листинг 2.3. Використання методу класу

unit UsingClassMethods;

Uses DeclaringClasaMethoda; (Під’єднуємо модуль DeclaringClassMethods,

в якому описаний клас MthdClass)

Interface

Implementation

Procedure UsingClaaa; {Опис процедури UsingClassI Var

A: Integer; {Опис цілочисельної змінної A|

Begin

A:= MthdClasa. Get5; (Виклик метода класу по імені класу

та метода, в змінну А заносится значення 5)

end;

end.

Методи класу іноді називаються статичними методами.


Перенавантажувані методи аналогічні перевантажується процедурам і име-ють такий же механнзм роботи. Приклад, можливість опису класу з перевантажується методами приведений в лістингу 2.4.

Лістинг 5.4. Опис класу з перевантажуємими методами

Туре

ACIass = class

Function Mult (А, В: Integer): Integer; overload;

(Заголовок метода Mult з двома цілочисельними параметрами, що повертає цілочисельне значення)

Function Mult(A, В: Double): Double; overload;

(Заголовок метода Mult з двома речовими параметрами, що повертає речове значення)

end;

Function ACIass.Mult(A, В: Integer): Integer;

begin

Result:=A*B;

end; (Опис першого варіанту метода Multi

Function ACIass.Mult(A, B: Double): Double;

begin

Result:=A*B;

end; (Опис другого варіанту метода Mult)

 

<== предыдущая лекция | следующая лекция ==>
Структура класу. Опис класу. Властивості та методи | Області видимості елементів класу
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 283; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.