Compartilhar via


Classes: Especificações técnicas para objetos

Classes são representações simbólicas de objetos; classes descrevem as propriedades, campos, métodos e eventos que forma objetos da mesma forma que plantas descrevem os itens que formam construções.Assim com uma planta pode ser usada para criar diversas construções, uma única classe pode ser usada para criar quantos objetos forem necessários.Assim como uma planta define quais partes da construção são acessíveis para pessoas que usam a construção, classes podem controlar o acesso de usuários a itens do objeto através de encapsulação.

Classes e Objetos

Os termos classe e objeto são às vezes usados representando a mesma coisa, mas na verdade, classes descrivem a estrutura de objetos, enquanto objetos são instâncias úteis de classes.Cada instância é uma cópia exata, mas distinta, de sua classe.Como um objeto é uma instância de uma classe, o ato de criar um objeto é chamado de intanciação.

usando a analogia da planta, a classe é a planta, e o objeto é a construção feita daquela planta.Geralmente, mudar dados num objeto não muda as informações em nenhum outro objeto.(A exceção são os membros compartilhados, membros de classe declarados com o modificador Shared, que existem independentemente de instâncias específicas da classe.)

Encapsulamento

Encapsulamento é a habilidade de conter e controlar o acesso a um grupo de itens associados.Classes fornecem um dos modos mais comuns de encapsular itens.No exemplo abaixo, a classe BankAccount encapsula os métodos, campos, e propriedade que descrevem a conta de banco.

Sem encapsulação, você declararia procedimentos separados e variável para armazenar e gerenciar informação da conta de banco, e isso tornaria difícil trabalhar com mais de uma conta ao mesmo tempo.Com encapsulação você pode usar as informações e procedimentos na classe BankAccount como uma unidade.Você pode trabalhar com contas de banco múltiplas concomitantemente sem confusão pois cada conta é representada por uma instância única da classe.

Encapsulação também permite controlar como a informação e procedimentos são usados.Você pode usar modificadores de acesso, como Private ou Protected, para previnir procedimentos externos de executar métodos de classe ou ler e modificar dados em procedimentos e campos.Você deve declarar detalhes internos de uma classe como Private para previnir que eles sejam usados fora da classe; essa técnica é chamada de esconder informações, e é como informações do cliente como o saldo da conta são protegidas.

Uma regra básica de encapsulação é que dados da classe devem ser modificados ou recuperados somente através de procedimentos ou métodos Property.Escondendo os detalhes da implementação de suas classes, previne as classes  de serem usadas de forma não desejada, e permite que você modifique esses itens no futuro sem risco de problemas de compatibilidade.Por exemplo, versões posteriores da classe BankAccount poderiam mudar o tipo de dados do campo AccountBalance sem quebrar outras aplicações que dependem desse campo tendo um tipo específico de tipo de dados.

Herança

Como estruturas Visual Basic, você pode usar classes para defiir tipos de dados que encapsulam um grupo de itens relacionados.Diferentemente de estruturas, no entando, classes Visual Basic podem herdar e extender as características de outras classes. São chamados de classes que servem sistema autônomo base para novas classesclasses base.Classes derivadas de classes base são chamadas classes derivadas.Classes derivadas herdam todos os campos, propriedades, métodos e eventos da classe base.Isso significa que você pode desenvolver e debugar uma classe uma vez, e depois reusá-la como base para outras classes.

O seguinte exemplo define uma classe base que representa uma conta bancária genérica, e uma classe específica que herda as propriedades da classe base mas é customizada para descrever uma conta corrente.

Class BankAccount
    Private AccountNumber As String
    Private AccountBalance As Decimal
    Private HoldOnAccount As Boolean = False
    Public Sub PostInterest()
        ' Add code to calculate the interest for this account.
    End Sub
    ReadOnly Property Balance() As Decimal
        Get
            ' Return the available balance.
            Return AccountBalance
        End Get
    End Property
End Class

Class CheckingAccount
    Inherits BankAccount
    Sub ProcessCheck()
        ' Add code to process a check drawn on this account.
    End Sub
End Class

Para obter mais informações sobre herança, consulte Noções básicas de herança.

Membros compartilhados

Por padrão, os dados da classe são específicos para cada instância da classe, mas pode haver ocasiões em que você queira que um único item de dados seja compartilhado por todos objetos criados de uma classe.Nesses casos, use o modificador Shared para fazer com que uma variável compartilhe o mesmo valor em todas instâncias de uma classe ( Membros compartilhados são algumas vezes chamados de "membros" estáticos em outras linguagens de programação).Você pode chamar métodos compartilhados diretamente usando um nome de classe sem antes criar uma instância dessa classe.

Para obter mais informações sobre membros compartilhados, veja Membros compartilhados no Visual Basic.

Sombreamento

Classes derivadas podem usar a palavra chave Shadows para declarar um membro com o mesmo nome que um membro herdado.Membros sombreados não precisam ser do mesmo tipo de dados que o membro sendo sombreado.Por exemplo, uma propriedade pode sombrear uma variável do tipo Integer.

Para obter mais informações sobre membros compartilhados, veja Sombreamento em Visual Basic.

Consulte também

Conceitos

Estruturas e Classes

Noções básicas de herança

Membros compartilhados no Visual Basic

Sombreamento em Visual Basic

Referência

Sombras

Compartilhamento (Visual Basic)

Outros recursos

Criando e Usando Objetos

Herança no Visual Basic