Share via


Declaraçã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

Parts

Term

Definition

attributelist

Optional. See Attribute List.

accessmodifier

Optional. Can be one of the following:

See Níveis de acesso em Visual Basic.

Shadows

Optional. See Shadows.

MustInherit

Optional. See MustInherit (Visual Basic).

NotInheritable

Optional. See NotInheritable (Visual Basic).

Partial

Optional. Indica uma definição parcial da classe. See Partial (Visual Basic).

name

Required. ONome dessa classe. See Nomes de elementos declarados (Visual Basic).

Of

Optional. Especifica que esta é uma classede genérica.

typelist

Required if you use the Of keyword. Lista de parâmetros de tipo para esta classe. See Type List.

Inherits

Optional. Indica que esta classe herda os membros de outra classe. See Declaração Inherits.

classname

Required if you use the Inherits statement. The name of the class from which this class derives.

Implements

Optional. Indica que essa classe implementa os membros de uma ou mais interfaces. See Implementa Declaração.

interfacenames

Required if you use the Implements statement. Os nomes das interfaces em que essa classe implementa.

statements

Optional. Instruções que definem os membros dessa classe.

End Class

Required. Terminates the Class definition.

Comentários

A Classdedemonstrativo define um novo tipo de dados. A classe é um componente fundamental do objeto-oriented programming (OOP). For more information, see Objetos e Classes no Visual Basic.

You can use Class only at namespace or module level. Isso significa que o dedeclaraçãocontexto para uma classe deve ser um arquivo de fonte , namespace, classe, estrutura, móduloou interfacee não pode ser um procedimento ou bloco. For more information, see Contextos de declaração e níveis de acesso padrão (Visual Basic).

Cada instância de uma classe tem uma tempo de 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 apontando para a instância de todas as variáveis foram definidas para Nada (Visual Basic) ou instâncias de outras classes.

Classes padrão para Friend (Visual Basic) de acesso. You can adjust their access levels with the access modifiers. For more information, see Níveis de acesso em Visual Basic.

Rules

  • Aninhamento. Você pode definir uma classe dentro de outro. A classe externa é chamado de que contém a classe, e é chamada de classe interna um aninhada classe.

  • Herança. Se a classe usa a Declaração Inherits, você pode especificar apenas um 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 nível de acessomais restritivo. Por exemplo, um Public classe não pode herdar de uma Friend classe.

    A class cannot inherit from a class nested within it.

  • Implementação. Se a classe usa a Implementa Declaração, você deve implementar cada membro definido por cada interface que você especificar na interfacenames. Uma exceção é a reimplementação de um membro de classe base . Para obter mais informações, consulte "Reimplementação" in Cláusula Implements (Visual Basic).

  • Padrão Propriedade. Uma classe pode especificar no máximo uma propriedade como sua propriedadepadrão de. For more information, see Padrão (Visual Basic).

Behavior

  • 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) de acesso, exceto as variáveis e constantes, padrão para Private (Visual Basic) de acesso. Quando uma classe tem mais acesso restrito que um de seus membros, onível de acesso de classeterá precedência.

  • Escopo. Uma classe está no escopo em toda a sua contendo namespace, classe, estruturaou módulo.

    O escopo de cada membro da classe é a classede inteiro.

    O tempo de vida. Visual Basic não oferece suporte a classes estático . O equivalente funcional de umaclasse de estáticoé fornecido por um módulo. For more information, see Declaração de Módulo.

    Os membros de classe têm vidas úteis dependendo de como e onde elas são declaradas. For more information, see Tempo de vida no Visual Basic.

  • Qualification. OCódigo fora de uma classe deve qualificar o nome do membro com o nome dessa classe.

    Se o código dentro de uma classe de aninhada faz uma referência não qualificada para um elemento de programação, Visual Basic procura o elemento primeiro no aninhada classe, em seguida, em sua classe, e assim por diante para fora para o elemento que contém mais externo.

Classes and Modules

These elements have many similarities, but there are some important differences as well.

  • Terminologia. VersõesAnterior de Visual Basic reconhecem dois tipos de módulos: os módulos declasse (arquivos do CLS) e módulos padrão (arquivos. BAS). The current version calls these classes and modules, respectively.

  • Membros compartilhados. You can control whether a member of a class is a shared or instance member.

  • Object Orientation. Classes are object-oriented, but modules are not. Você pode criar uma ou mais instâncias de uma classe. For more information, see Objetos e Classes no Visual Basic.

Exemplo

O exemplo a seguir utiliza um Classdedemonstrativo 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

Declaração Interface (Visual Basic)

Declaração de Módulo

Propriedade declaração

Conceitos

Estruturas e Classes (Visual Basic)

Vida útil de 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