progs.biz  
Начало>VB.NET>Основы>Урок 7
C#
VB.NET
Visual C++.NET
ASP.NET
Visual C++ 6
WinAPI
C/C++
Delphi
C++ Builder
Java
SQL
PHP
DirectX
Visual Basic 6.0
Ассемблер
Интернет
Сист. прогр-ние
Pocket PC
Обзор книг
Обзор программ

Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Джон Коннелл. Разработка элементов управления Microsoft .NET на Microsoft Visual Basic .NET
Заказать на Озоне



Яндекс-цитирования

Основы 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.

Рассылки нашего сайта на Subscribe.Ru
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


 
 
Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2008 сайт progs.biz
© 2002-2008 Игорь Алексеев