progs.biz  
Начало>VB.NET>Основы>Урок 10
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
Обзор книг
Обзор программ

Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Б. Ивьен и др. Visual Basic .NET. Библия пользователя
Заказать на Озоне



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

Основы VB.NET
Урок 10. Статические методы и переменные класса

Статические методы уже встречались нам на прошлых уроках. На этом уроке мы с вами рассмотрим их (и, разумеется, статические переменные) более подробно.

Для начала рассмотрим статические переменные. Если кратко, то статческие переменные - это переменные самого класса. Обычные переменные относятся всегда к конкретному экземпляру класса, статические же - именно ко всему классу целиком. Т. е. все экземпляры класса будут разделять один экземпляр такой переменной. Это может пригодится, например, если нам надо иметь знать общее количество созданных экземпляров класса. Именно такой пример мы сейчас и напишем:

Imports System
Class SomeClass
    Public Shared counter As Integer
    Public Sub New()
        'Увеличиваем счетчик на единицу
        counter = counter + 1
    End Sub
End Class
Class Test
    Public Shared Sub Main()
        Dim d1 As New SomeClass()
        Dim d2 As New SomeClass()
        Console.WriteLine(d1.counter)
    End Sub
End Class

Как вы видите, переменная counter в классе SomeClass объявлена как статическая (это мы сделали с помощью ключевого слова Shared). В конструкторе класса мы увеличиваем эту переменную на единицу. Так как это статическая переменная, то при создании первого экземпляра класса она станет равной одному, при создании второго - двум и т. д. Наша программа выведет на экран, понятное дело, двойку.

В принципе вместо строки

...
Console.WriteLine(d1.counter)
...

можно было написать и так:

...
Console.WriteLine(SomeClass.counter)
...

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

Теперь поговорим о статических методах. Аналогично статическим переменным, эти методы относятся к самому классу, а не к конкретному его экземпляру. Обычные методы мы всегда вызываем для конкретного экземпляра класса:

Dim z As New SomeClass
z.SomeMethod1()

Для статических же методов мы можем использовать не только конкретный экземпляр класса, но и сам класс:

SomeClass.SomeMethod2()

Пример использования статических методов у нас уже был чуть ли не в каждом уроке. Это класс Test с методом Main:

Class Test
    Public Shared Sub Main()
        ...
    End Sub
End Class

Как вы видите, медод Main объявляется с модификатором Shared, который как раз и определяет его статичность. После этого становится возможным вызов метода Main без создания экземпляра класса Test.

Рассылки нашего сайта на 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 Игорь Алексеев