Yurijnd.com
Вторник, 08.07.2025, 03:53
Меню сайта

Вход на сайт

Поиск

Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz

  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0

    Delphi. Pascal
    Урок 24. Конструкторы

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

    Конструкторов у класса может быть несколько. Кроме того, конструкторы могут быть с параметрами и без параметров.

    Вот пример класса с конструкторами (это развитие примера из позапрошлого урока):

    type
     TCar = class
     private
     FSpeed: Integer;
     public
     // Задаем 2 конструктора.
     constructor Create(); overload;
     constructor Create(Speed: Integer); overload;
     // Методы класса.
     function GetSpeed(): Integer;
     ...
     end;
    // Код 2-х конструкторов.
    constructor TCar.Create();
    begin
     FSpeed:=40;
    end;
    constructor TCar.Create(Speed: Integer);
    begin
     FSpeed:=Speed;
    end;
    
    var
     c1, c2: TCar;
     s: Integer;
    begin
     // Вызов первого конструктора.
     c1 := TCar.Create;
     // В s запишется 40.
     s := c1.GetSpeed;
     // Вызов второго конструктора.
     c2 := TCar.Create(60);
     // В s запишется 60.
     s := c2.GetSpeed;
    end.

    Как вы видите, перед именем конструктора при его определении в классе мы пишем ключевое слово constructor (вместо слов procedure и function). Это же ключевое слово мы используем и при реализации конструкторов:

    ...
    constructor TCar.Create();
    begin
     FSpeed:=40;
    end;
    constructor TCar.Create(Speed: Integer);
    begin
     FSpeed:=Speed;
    end;
    ...

    В остальном конструкторы объявляются в классе также, как и функции с процедурами.

    Для вызова конструктора мы используем сам класс (а не экземпляр класса), при необходимости указывая параметры:

     ...
     // Вызов первого конструктора.
     c1 := TCar.Create;
     ...
     // Вызов второго конструктора.
     c2 := TCar.Create(60);
     ...

    С этим уроком все.

    Copyright MyCorp © 2025
    Сделать бесплатный сайт с uCoz