Мониторинг обменных курсов валют
18c0693f

Жизненный цикл объекта


Итак, при создании экземпляра класса оператором New вызывается соответствующий метод-конструктор New из определения класса (также может быть вызван общий конструктор, если он есть). Версия конструктора выбирается в соответствии с типом переданных параметров. Конструктор можно рассматривать как аналог события Class_Initiall ze в VB6.

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

После того как объект будет создан оператором New, вы не сможете изменить его состояние повторным вызовом New. Пример:

Dim Tom As New EmployeeC'Tom ", 100000)

Tom = New Employee("Tom ". 125000)

В этом фрагменте создаются два разных объекта Empl oyee, причем после присваивания во второй строке первый объект Тот теряется. Иногда это соответствует намерениям программиста, иногда — нет. Например, если идентификатор работника хранится в общей переменной Empl oyeeID, то вторая строка присвоит второму объекту Тот идентификатор на 1 больше первоначального. Так или иначе, следующий фрагмент заведомо невозможен:

Dim Tom As New Employee("Tom ", 100000)

Dim Tom As New Employee("Tom ", 125000)

Компилятор выдает следующее сообщение об ошибке:

The local variable 'Tom' is defined multiple times in the same method.



Содержание раздела


Самый выгодный курс обмена валюты