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


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

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

[ <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 (Visual Basic).

NotInheritable

Необязательный. См. раздел NotInheritable (Visual Basic).

Partial

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

name

Обязательный. Имя этого класса. См. раздел Имена объявленных типов (Visual Basic).

Of

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

typelist

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

Inherits

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

classname

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

Implements

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

interfacenames

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

statements

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

End Class

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

Заметки

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

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

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

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

Правила

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

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

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

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

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

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

Поведение

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

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

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

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

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

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

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

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

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

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

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

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

Пример

В следующем примере оператор 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

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

Структуры и классы (Visual Basic)

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

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

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

Объекты и классы Visual Basic