Основы VB.NET Урок 7. Конструкторы
Конструкторы класса можно представлять себе как методы класса, которые вызываются при создании нового экземпляра класса с помощью оператора new. Например, тут вызывается конструктор:
Dim cl As New MyClass()
Обычно в конструкторе происходит задание некотрых стандартных значений для полей класса.
Конструкторы в VB.NET, в отличие от C-подобных языков, имеют имя new (в C-подобных языках, как известно, имя конструктора совпадает с именем класса).
Вот пример класса с конструктором:
Class Dice
Private r As New Random()
Private n As Integer 'Количество граней у кубика
Public Function GetRandom()
'Бросание кубика
Dim k As Integer
k = r.Next Mod n + 1
Return k
End Function
'Конструктор без параметров
Public Sub New()
n = 6
End Sub
End Class
Этот класс представляет из себя игральный кубик с n гранями (т. е. при бросании такой кубик может выдавать случайные числа от 1 до n). Устройство этого класса более-менее ясно из комментариев. Как вы видите, в классе есть конструктор с именем new:
Public Sub New()
n = 6
End Sub
В этом конструкторе переменной n, отвечающей за число граней у нашего "кубика", присваивается стандартное значение 6.
Испытать наш класс можно, например, так:
Class Test
Public Shared Sub Main()
Dim d As Dice
'Вызов конструктора без параметра
d = New Dice()
'Бросаем кость
Console.WriteLine(d.GetRandom())
End Sub
End Class
Конструкторов у класса может быть несколько. Все они называются New, и должны различаться или типом параметров, или их количеством, или и тем и другим. Например, в наш класс можно добавить еще один конструктор с целочисленным параметром, котрый будет проеделять, сколько граней имеет наш "кубик":
Class Dice
...
'Конструктор с параметром
Public Sub New(ByVal n As Integer)
MyClass.n = n
End Sub
...
End Class
В тестовом классе этот конструктор можно вызвать, например, так:
Dim d As Dice
'Вызов конструктора с параметром
d = New Dice(12)
Созданный таким образом экземпляр "кубика" будет выдавать случайные числа от 1 до 12.
|