Оператор 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)
Основные понятия
Структуры и классы (Visual Basic)
Время существования: создание и уничтожение объектов (Visual Basic)
Универсальные типы в Visual Basic (Visual Basic)