Оператор Class (Visual Basic)
Объявляет имя класса и вводит определение переменных, свойств, событий и процедур, составляющих класс.
Синтаксис
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Детали
Термин | Определение |
---|---|
attributelist |
Необязательно. См . список атрибутов. |
accessmodifier |
Необязательно. Может применяться один из перечисленных ниже типов. - Открытый - Protected - Friend - Частное - Protected Friend - Private Protected См. раздел Access levels in Visual Basic. |
Shadows |
Необязательно. См . тени. |
MustInherit |
Необязательно. См . раздел MustInherit. |
NotInheritable |
Необязательно. См . раздел NotInheritable. |
Partial |
Необязательно. Указывает частичное определение класса. См . раздел "Частичный". |
name |
Обязательный. Имя этого класса. См. раздел Declared Element Names. |
Of |
Необязательно. Указывает, что это универсальный класс. |
typelist |
Требуется, если вы используете ключевое слово. Список параметров типа для этого класса. См . список типов. |
Inherits |
Необязательно. Указывает, что этот класс наследует члены другого класса. См . инструкцию "Наследование". |
classname |
Требуется, если вы используете инструкцию Inherits . Имя класса, от которого наследуется этот класс. |
Implements |
Необязательно. Указывает, что этот класс реализует члены одного или нескольких интерфейсов. См . инструкцию "Реализация". |
interfacenames |
Требуется, если вы используете инструкцию Implements . Имена интерфейсов, реализуемых этим классом. |
statements |
Необязательно. Операторы, определяющие члены этого класса. |
End Class |
Обязательный. Class Завершает определение. |
Замечания
Оператор Class
определяет новый тип данных. Класс является основным стандартным блоком объектно-ориентированного программирования (OOP). Дополнительные сведения см. в разделе "Объекты и классы".
Можно использовать Class
только на уровне пространства имен или модуля. Это означает, что контекст объявления для класса должен быть исходным файлом, пространством имен, классом, структурой, модулем или интерфейсом и не может быть процедурой или блоком. Дополнительные сведения см. в разделе Контексты объявления и уровни доступа по умолчанию.
Каждый экземпляр класса имеет время существования независимо от всех остальных экземпляров. Это время существования начинается, когда оно создается предложением New Operator или функцией, например CreateObject. Он заканчивается, когда все переменные, указывающие на экземпляр, были заданы как Nothing или экземпляры других классов.
Классы по умолчанию используют доступ "Друг ". Уровни доступа можно настроить с помощью модификаторов доступа. Дополнительные сведения см. в разделе "Уровни доступа" в Visual Basic.
Правила
Вложения. Можно определить один класс внутри другого. Внешний класс называется содержащимся классом, а внутренний класс называется вложенным классом.
Наследование. Если класс использует инструкцию "Наследование", можно указать только один базовый класс или интерфейс. Класс не может наследовать от нескольких элементов.
Класс не может наследовать от другого класса с более строгим уровнем доступа. Например,
Public
класс не может наследоваться отFriend
класса.Класс не может наследоваться от класса, вложенного в него.
Реализация. Если класс использует оператор Implements, необходимо реализовать каждый элемент, определенный каждым интерфейсом, указанным в
interfacenames
. Исключением из этого является повторное выполнение элемента базового класса. Дополнительные сведения см. в разделе "Повторная реализация".Свойство по умолчанию. Класс может указать не более одного свойства в качестве свойства по умолчанию. Дополнительные сведения см. в разделе "По умолчанию".
Поведение
Уровень доступа. В классе можно объявить каждый член с собственным уровнем доступа. Члены класса по умолчанию являются общедоступным доступом, за исключением переменных и констант, которые по умолчанию являются частным доступом. Если класс имеет более ограниченный доступ, чем один из его членов, уровень доступа к классу имеет приоритет.
Область. Класс находится в область в пределах своего пространства имен, класса, структуры или модуля.
Область каждого члена класса — это весь класс.
Время существования. Visual Basic не поддерживает статические классы. Функциональный эквивалент статического класса предоставляется модулем. Дополнительные сведения см. в инструкции модуля.
Члены класса имеют время существования в зависимости от того, как и где они объявлены. Дополнительные сведения см. в разделе "Время существования" в Visual Basic.
Квалификации. Код за пределами класса должен указать имя члена с именем этого класса.
Если код внутри вложенного класса делает неквалифицированную ссылку на элемент программирования, Visual Basic выполняет поиск элемента сначала в вложенном классе, а затем в его содержательном классе и т. д. до самого внешнего содержащего элемента.
Классы и модули
Эти элементы имеют много сходств, но есть и некоторые важные различия.
Терминология. Предыдущие версии Visual Basic распознают два типа модулей: модули классов (CLS-файлы) и стандартные модули (BAS-файлы). Текущая версия вызывает эти классы и модули соответственно.
Общие члены. Вы можете контролировать, является ли член класса общим или членом экземпляра.
Ориентация объекта. Классы являются объектно-ориентированными, но модули не являются. Можно создать один или несколько экземпляров класса. Дополнительные сведения см. в разделе "Объекты и классы".
Пример
В следующем примере оператор используется Class
для определения класса и нескольких членов.
Class BankAccount
Shared interestRate As Decimal
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
См. также
- Объекты и классы
- Структуры и классы
- Оператор Interface
- Оператор Module
- Оператор Property
- Object Lifetime: How Objects Are Created and Destroyed (Visual Basic) (Время существования, создание и уничтожение объектов (Visual Basic))
- Generic Types in Visual Basic
- Практическое руководство. Использование универсального класса