Поделиться через


Оператор Class (Visual Basic)

Обновлен: Ноябрь 2007

Объявляет имя класса и представляет определения переменных, свойств, событий и процедур, которые включаются в класс.

[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
    [ Inherits classname ]
    [ Implements interfacenames ]
    [ statements ]
End Class

Компоненты

  • attributelist
    Необязательный атрибут. См. Список атрибутов.

  • accessmodifier
    Необязательный атрибут. Может быть одним из следующих.

    См. раздел Уровни доступа в Visual Basic.

  • Shadows
    Необязательный атрибут. См. в разделе Shadows.

  • MustInherit
    Необязательный атрибут. См. раздел MustInherit.

  • NotInheritable
    Необязательный атрибут. См. раздел NotInheritable.

  • Partial
    Необязательный атрибут. Указывает частичное определение класса. См. раздел Partial (Visual Basic).

  • name
    Обязательный параметр. Имя этого класса. См. раздел Имена объявленных элементов.

  • Of
    Необязательный атрибут. Указывает на принадлежность к универсальному классу.

  • typelist
    Является обязательным, если используется ключевое слово Of. Список типов параметров для данного класса. См. в разделе список типов.

  • Inherits
    Необязательный атрибут. Указывает на то, что данный класс наследует члены другого класса. См. раздел Инструкция Inherits.

  • classname
    Является обязательным, если используется оператор Inherits. Имя класса, от которого наследует данный класс.

  • Implements
    Необязательный атрибут. Указывает на то, что этот класс реализует члены одного или нескольких интерфейсов. См. раздел Оператор Implements.

  • interfacenames
    Является обязательным, если используется оператор Implements. Имена интерфейсов, реализуемых данным классом.

  • statements
    Необязательный атрибут. Операторы, определяющие члены этого класса.

  • End Class
    Обязательный параметр. Завершает определение Class.

Заметки

Оператор Class определяет новый тип данных. Класс является основным строительным блоком в объектно-ориентированном программировании (OOP). Дополнительные сведения см. в разделах Объектно-ориентированное программирование в Visual Basic и Классы: схемы объектов.

Class можно использовать только на уровне пространства имен или модуля. Это означает, что контекстом объявления для класса должен быть исходный файл, пространство имен, класс, структура, модуль или интерфейс и не может быть процедура или блок. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.

Каждый экземпляр класса имеет время жизни, не зависящее от всех других экземпляров. Это время жизни начинается при создании экземпляра предложением New (Visual Basic) или функцией, например Функция CreateObject (Visual Basic). Оно заканчивается, когда все переменные, указывающие на экземпляр были установлены в Nothing (Visual Basic) или в экземпляры других классов.

Классы по умолчанию имеют доступ Friend (Visual Basic). Можно настроить их уровни доступа с помощью модификаторов доступа. Дополнительные сведения см. в разделе Уровни доступа в Visual Basic.

Правила

  • Вложения. Можно определить один класс внутри другого. Внешний класс называется содержащим классом, а внутренний класс — вложенным классом.

  • Наследование. Если класс использует Инструкция Inherits, то можно указать только один базовый класс или интерфейс. Класс не может наследовать от нескольких элементов.

    Класс не может наследовать от другого класса с более строгим уровнем доступа. Например, класс Public не может наследовать от класса Friend.

    Класс не может наследовать от вложенного в него класса.

  • Реализация. Если класс использует Оператор Implements, то необходимо реализовать каждый член, определенный каждым интерфейсом в interfacenames. Исключение составляет повторная реализация члена базового класса. Дополнительные сведения см. в главе "Повторная реализация" раздела Implements (Visual Basic).

  • Атрибут по умолчанию. Класс может указать только одно свойство в качестве свойства по умолчанию. Дополнительные сведения см. в разделе Свойства, используемые по умолчанию.

Поведение

  • Уровень доступа. В классе можно объявить каждый член со своим собственным уровнем доступа. Члены класса по умолчанию имеют доступ Public (Visual Basic), за исключением переменных и констант, которые по умолчанию имеют доступ Private (Visual Basic). Если класс имеет более ограниченный доступ, чем один из его членов, уровень доступа к заданному классу имеет больший приоритет.

  • Область действия. Область действия класса — его пространство имен, класс, структура или модуль.

    Областью действия каждого члена класса является весь класс.

    Время жизни. Visual Basic не поддерживает статические классы. Функциональный эквивалент статического класса обеспечивается модулем. Дополнительные сведения см. в разделе Оператор Module.

    Время существования членов класса зависит от того, как и где они были объявлены. Дополнительные сведения см. в разделе Время существования в Visual Basic.

  • Квалификация. Код вне класса должен предварять имя члена именем этого класса.

    Если код внутри вложенного класса делает неполную ссылку на элемент программирования, Visual Basic ищет элемент сначала во вложенном классе, затем в содержащем его классе, и так далее до выхода из внешнего содержащего элемента. Дополнительные сведения см. в разделе Разрешение ссылки, когда несколько переменных имеют одинаковые имена.

Классы и модули

Эти элементы имеют много общего, но существуют важные различия.

  • Терминология. Предыдущие версии Visual Basic различают два типа модулей: модули класса (файлы CLS) и стандартные модули (файлы BAS). В текущей версии они называются соответственно классами и модулями.

  • Общие члены. Можно управлять тем, является ли член класса общим или членом экземпляра.

  • Объектная ориентация. Классы являются объектно ориентированными, а модули — нет. Пользователь может создать один или несколько экземпляров класса. Дополнительные сведения см. в разделе Классы и модули.

Пример

В следующем примере оператор Class используется для определения класса и нескольких членов.

Class bankAccount
    Shared interestRate As Decimal
    Private accountNumber As String
    Private accountBalance As Decimal
    Public holdOnAccount As Boolean = False

    Public ReadOnly Property balance() As Decimal
        Get
            Return accountBalance
        End Get
    End Property

    Public Sub postInterest()
        accountBalance = accountBalance * (1 + interestRate)
    End Sub

    Public Sub postDeposit(ByVal amountIn As Decimal)
        accountBalance = accountBalance + amountIn
    End Sub

    Public Sub postWithdrawal(ByVal amountOut As Decimal)
        accountBalance = accountBalance - amountOut
    End Sub
End Class

См. также

Задачи

Практическое руководство. Использование универсального класса

Основные понятия

Структуры и классы

Время существования: создание и уничтожение объектов

Универсальные типы в Visual Basic

Ссылки

Оператор Interface (Visual Basic)

Оператор Module

Оператор Property

Другие ресурсы

Общее представление о классах