Declaração de classe (Visual Basic)
Declara o nome de uma classe e introduz a definição de variáveis, propriedades, eventos e procedimentos que a classe compreende.
[ <attributelist> ] [ accessmodifier ] [ Shadows ] [ MustInherit | NotInheritable ] [ Partial ] _
Class name [ ( Of typelist ) ]
[ Inherits classname ]
[ Implements interfacenames ]
[ statements ]
End Class
Partes
Termo |
Definição |
attributelist |
Opcional.Veja Lista de Atributos. |
accessmodifier |
Opcional.Pode ser um dos seguintes: Consulte Níveis de acesso em Visual Basic. |
Shadows |
Opcional.Acesse Shadows. |
MustInherit |
Opcional.Consulte MustInherit (Visual Basic). |
NotInheritable |
Opcional.Consulte NotInheritable (Visual Basic). |
Partial |
Opcional.Indica uma definição parcial da classe.Consulte Parcial (Visual Basic). |
name |
Obrigatório.Nome dessa classe.Consulte Nomes de elementos declarados (Visual Basic). |
Of |
Opcional.Especifica que esta é uma classe genérica. |
typelist |
Necessário se você usar a palavra-chave Of.Lista de parâmetros de tipo para esta classe.Consulte Type List. |
Inherits |
Opcional.Indica que esta classe herda os membros de outra classe.Consulte Herda a instrução. |
classname |
Necessário se você usar a declaração Inherits.O nome da classe a partIr da qual essa classe deriva. |
Implements |
Opcional.Indica que essa classe implementa os membros de uma ou mais interfaces.Consulte Instrução Implements. |
interfacenames |
Necessário se você usar a declaração Implements.Os nomes das interfaces que essa classe implementa. |
statements |
Opcional.Instruções que definem os membros dessa classe. |
End Class |
Obrigatório.Finaliza a definição Class. |
Comentários
A Class a instrução define um novo tipo de dados.A classe é um componente fundamental da programação orientada a objeto (OOP).Para obter mais informações, consulte Objetos e Classes em Visual Basic.
Você pode usar Class somente em nível de namespace ou módulo.Isso significa que o o contexto de declaração para 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 Níveis de acesso padrão (Visual Basic) e os contextos de declaração.
Cada instância de uma classe tem uma vida independente de todas as outras instâncias.Esse tempo de vida começa quando ele é criado por um Operador New (Visual Basic) cláusula ou por uma função, como CreateObject.Ela termina quando todas as variáveis, apontando para a instância tem sido definidas a Nada (Visual Basic) ou instâncias de outras classes.
Classes padrão para Amigo (Visual Basic) acesso.Você pode ajustar os seus níveis de acesso com os modificadores de acesso.Para obter mais informações, consulte Níveis de acesso em Visual Basic.
Regras
Aninhamento. Você pode definir uma classe dentro de outro.A classe externa é chamada a que contém a classe, e é chamada de classe interna um classe aninhada.
Herança. Se a classe usa a Herda a instrução, você pode especificar somente 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, um Public classe não pode herdar de uma Friend classe.
Uma classe não pode herdar de um classe que esteja aninhada nela.
Implementação. Se a classe usa a Instrução Implements, você deve implementar cada membro definido por cada interface especificada em interfacenames.Uma exceção a isso é reimplementação de um membro da classe base.Para obter mais informações, consulte "Reimplementação" em Cláusula implements (Visual Basic).
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 (Visual Basic).
Comportamento
Nível de acesso. Dentro de uma classe, você pode declarar cada membro com o seu próprio nível de acesso.Membros da classe padrão para Público (Visual Basic) acessar, exceto as variáveis e constantes, padrão para Private (Visual Basic) acesso.Quando uma classe mais restringiu o acesso que um de seus membros, o nível de acesso de classe terá precedência.
Escopo. Uma classe está no escopo em toda sua contendo namespace, classe, estrutura ou módulo.
O escopo de cada membro da classe é toda a turma.
Tempo de vida. Visual Basic não oferece suporte a classes estáticas.O equivalente funcional de uma classe estática é fornecido por um módulo.Para obter mais informações, consulte Declaração do módulo.
Os membros de classe têm vidas úteis dependendo de como e onde elas são declaradas.Para obter mais informações, consulte Tempo de vida em Visual Basic.
Qualificaçã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 faz uma referência não qualificada para um elemento de programação, Visual Basic pesquisa para o elemento primeiro na classe aninhada, em seguida, na sua classe, e assim por diante para fora para o elemento que contém mais externo.
Classes e Módulos
Esses elementos têm várias semelhanças, mas há algumas diferenças importantes também.
Terminologia. 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 os chama de 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 a Objeto Classes são orientadas a objeto, mas 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 em Visual Basic.
Exemplo
O exemplo a seguir usa um Class a instrução para definir uma classe e vários membros.
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
Consulte também
Tarefas
Como: usar uma classe genérica (Visual Basic)
Referência
Instrução (Visual Basic) de interface.
Conceitos
Estruturas e Classes (Visual Basic)
Tempo de vida do objeto: Como os objetos são criados e destruído (Visual Basic)
Tipos genéricos em Visual Basic (Visual Basic)