Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки


Информационный Канал Subscribe.Ru

Основы VB.NET. Уроки с сайта http://progs.biz

Рассылка №14

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

Полные версии уроков (с картинками) можно найти по адресам
Урок 10. Статические методы и переменные класса.
Урок 11. Наследование классов.

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

Наверх

Основы VB.NET. Урок 11. Наследование классов

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

Объявляется класс потомком другого с помощью ключевого слова Inherits. Вот пример:

Class A
    Public n As Integer
    Public Sub incN()
        'Увеличиваем n
        n = n + 1
    End Sub
End Class
'Класс B - потомок класса A
Class B
    Inherits A
    Public m As Integer
    Public Sub decN()
        'Уменьшаем n
        n = n - 1
    End Sub
End Class

Class Test
    Public Shared Sub Main()
        Dim p As New B()
        p.decN()
        Console.WriteLine(p.n)
        p.incN()
        Console.WriteLine(p.n)
    End Sub
End Class

Обратите сразу внимание, что слово Inherits с последующием именем класса-предка пишется на отдельной строке (в VB важно, как вы разбиваете программу на строки). Так как класс B - потомок класса A, то мы можем использовать в нем как его собственные методы (decN), так и методы родителя (incN). Что мы, собственно, и делаем в текстовом классе.

Разумеется, наша программа выведет на экран -1 и 0.

Наверх

Другие рассылки с сайта progs.biz

Рассылки Subscribe.Ru
Уроки по Java

Уроки по Java с самого начала. Основные конструкции языка, классы в Java, создание приложений с графическим интерфейсом, создание апплетов, работа в JBuilder от Borland'а, сетевые приложения.


Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное