Instrução Class (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 no 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 elemento 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 Instrução Inherits.

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 no 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 Contextos de declaração e níveis de acesso padrão (Visual Basic).

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 Friend (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 no 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 Instrução Inherits, 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 Particular (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 Instrução Module.

    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 no 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 no 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 Interface (Visual Basic)

Instrução Module

Instrução Property

Conceitos

Estruturas e classes (Visual Basic)

Tempo de vida do objeto: como os objetos são criados e destruídos (Visual Basic)

Tipos genéricos no Visual Basic (Visual Basic)

Outros recursos

Objetos e classes no Visual Basic