Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Declara o nome de uma classe e apresenta a definição das variáveis, propriedades, eventos e procedimentos que a classe inclui.
Sintaxe
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Partes
| Prazo | Definição |
|---|---|
attributelist |
Opcional. Consulte a Lista de Atributos. |
accessmodifier |
Opcional. Pode ser um dos seguintes: - Público - Protegido - Amigo - Privado - Amigo Protegido - Proteção Privada Consulte os níveis de acesso no Visual Basic. |
Shadows |
Opcional. Veja Sombras. |
MustInherit |
Opcional. Consulte MustInherit. |
NotInheritable |
Opcional. Consulte NotInheritable. |
Partial |
Opcional. Indica uma definição parcial da classe. Consulte Parcial. |
name |
Obrigatório Nome dessa classe. Consulte nomes de elementos declarados. |
Of |
Opcional. Especifica que essa é uma classe genérica. |
typelist |
Obrigatório se você usar a palavra-chave De . Lista de parâmetros de tipo para essa classe. Consulte a Lista de Tipos. |
Inherits |
Opcional. Indica que essa classe herda os membros de outra classe. Consulte a instrução Inherits. |
classname |
Necessário se você usar a Inherits instrução. O nome da classe da qual essa classe deriva. |
Implements |
Opcional. Indica que essa classe implementa os membros de uma ou mais interfaces. Consulte a instrução Implements. |
interfacenames |
Necessário se você usar a Implements instrução. Os nomes das interfaces que essa classe implementa. |
statements |
Opcional. Instruções que definem os membros dessa classe. |
End Class |
Obrigatório Encerra a Class definição. |
Observações
Uma Class instrução define um novo tipo de dados. Uma classe é um bloco de construção fundamental da programação orientada a objetos (OOP). Para obter mais informações, consulte Objetos e Classes.
Você só pode usar Class no namespace ou no nível do módulo. Isso significa que o contexto de declaração de uma classe deve ser um arquivo de origem, namespace, classe, estrutura, módulo ou interface e não pode ser um procedimento ou bloco. Para obter mais informações, consulte contextos de declaração e níveis de acesso padrão.
Cada instância de uma classe tem um tempo de vida independente de todas as outras instâncias. Esse tempo de vida começa quando é criado por uma cláusula New Operator ou por uma função como CreateObject. Ela termina quando todas as variáveis que apontam para a instância foram definidas como Nothing ou para instâncias de outras classes.
Classes padrão para acesso ao Amigo . Você pode ajustar seus níveis de acesso com os modificadores de acesso. Para obter mais informações, consulte os níveis de acesso no Visual Basic.
Regras
Nidificação. Você pode definir uma classe dentro de outra. A classe externa é chamada de classe de contenção e a classe interna é chamada de classe aninhada.
Herança. Se a classe usar a Instrução Inherits, você poderá especificar apenas uma classe base ou interface. Uma classe não pode herdar de mais de um elemento.
Uma classe não pode herdar de outra classe com um nível de acesso mais restritivo. Por exemplo, uma
Publicclasse não pode herdar de umaFriendclasse.Uma classe não pode herdar de uma classe aninhada dentro dela.
Implementação. Se a classe usar a Instrução Implements, você deverá implementar todos os membros definidos por cada interface especificada.
interfacenamesUma exceção a isso é a reimplementação de um membro de classe base. Para obter mais informações, consulte "Reimplementation" em Implements.Propriedade Padrão. Uma classe pode especificar no máximo uma propriedade como sua propriedade padrão. Para obter mais informações, consulte Padrão.
Comportamento
Nível de acesso. Em uma classe, você pode declarar cada membro com seu próprio nível de acesso. Os membros da classe são padrão para acesso público , exceto variáveis e constantes, que são padrão para acesso privado . Quando uma classe tem acesso mais restrito do que um de seus membros, o nível de acesso de classe tem precedência.
Escopo. Uma classe está no escopo em todo o namespace, classe, estrutura ou módulo que contém.
O escopo de cada membro de classe é a classe inteira.
Vida. O Visual Basic não dá suporte a classes estáticas. O equivalente funcional de uma classe estática é fornecido por um módulo. Para obter mais informações, consulte a Instrução module.
Os membros da classe têm tempo de vida dependendo de como e onde são declarados. Para obter mais informações, consulte Tempo de vida no Visual Basic.
Qualificação. O código fora de uma classe deve qualificar o nome de um membro com o nome dessa classe.
Se o código dentro de uma classe aninhada fizer uma referência não qualificada a um elemento de programação, o Visual Basic procurará o elemento primeiro na classe aninhada, depois em sua classe de contenção e assim por diante até o elemento que contém mais externo.
Classes e módulos
Esses elementos têm muitas semelhanças, mas também há algumas diferenças importantes.
Terminologia. As versões anteriores do Visual Basic reconhecem dois tipos de módulos: módulos de classe (arquivos .cls) e módulos padrão (arquivos .bas). A versão atual chama essas classes e módulos, respectivamente.
Membros compartilhados. Você pode controlar se um membro de uma classe é um membro compartilhado ou de instância.
Orientação do objeto. As classes são orientadas a objetos, mas os módulos não são. Você pode criar uma ou mais instâncias de uma classe. Para obter mais informações, consulte Objetos e Classes.
Exemplo
O exemplo a seguir usa uma Class instrução para definir uma classe e vários membros.
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