Оператор 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)