VB .NET - Conceitos da Programação Orientada a Objetos
Um dos requisitos para criar aplicações sólidas em .NET é ter bons conceitos sobre OOP (programação orientação a objetos). Como andam seus conhecimentos OOP ? Vamos fazer um teste ? Veja se você consegue responder a duas perguntas básicas sobre conceitos OOP:
1- ) Você sabe dizer qual a diferença entre classe e objeto ?
2- ) É possível acessar uma classe em VB .NET antes de instanciar um objeto da classe ?
Se você não tem nem idéia da resposta para estas perguntas é bom você reciclar seus conhecimentos sobre OOP. Segue abaixo uma relação de artigos do site que abordam o tema :
Mas e quanto as perguntas ? Tudo bem , vamos a resposta...
1 -) Qual a diferença entre classe e objeto ?
Uma das formas você reconhecer a diferença entre uma classe e um objeto (uma instância de uma classe) é fazer uma analogia e considerar a diferença entre tipo e variável do tipo. Vejamos:
Você pode usar o tipo Inteiro ou Integer e uma variável do tipo Integer.
Você não pode atribuir um valor a um tipo , i.e , você não pode fazer a seguinte declaração : Integer = 100
Isto iria gerar um erro.
Mas você pode atribuir um valor a um objeto do tipo Integer :
Dim objInteiro As Integer
objInteiro = 100
Da mesma forma , você não pode atribuir valores a membros em uma classe. Supondo uma classe Carro definida você não pode fazer o seguinte :
Carro.cor = "vermelho"
pois isto indicaria que todo o carro seria da cor vermelho.(eu particularmente detesto carro vermelho)
Você teria que definir um objeto da classe para em seguida atribuir uma cor a um objeto da classe. Assim :
Dim meugol
As new Carro Dim meuFor As new Carro meuGol.cor = "prata" meuGol.ano = 2003 seuFord.cor = "branco" seuFord.ano = 2002 |
Aí sim , você esta definindo objetos específicos da classe carro e atribuindo à propriedade cor o valor "prata" para o objeto meuGol e branco para o objeto meuFord.
Podemos concluir dizendo que :
- A classe Carro tem características (variáveis e métodos) que definem o seu estado como: cor , chassi, placa, ano, modelo , etc.
- Cada carro (meuGol, seuFord) - cada instância - tem sua própria combinação de estado : cor, chassi, modelo , ano ,etc.
- A classe seria o modelo pelo qual serão construídas as instâncias da classe (os objetos).(as propriedades cor e ano estão disponíveis para todo objeto criado (instanciado) a partir da classe Carro)
Entendeu a diferença ? Vamos a segunda pergunta ...
2- ) É possível usar uma classe sem criar uma instância desta classe ?
Bem , parece que pela resposta dada a primeira pergunta , fica óbvio que você deve criar uma instância da classe (criar um objeto) para poder ter acesso as propriedades e métodos da classe.
Mas não é bem assim . Você pode acessar uma classe sem criar uma instância desta classe.
Antes que você fique confuso eu vou explicar...
Vou definir uma classe Carro com algumas propriedades métodos . Abra um novo projeto do tipo console no VB e inclua uma classe no seu projeto com o seguinte código :
Agora insira um novo modulo no seu projeto para podermos usar a classe criada acima. O código é o seguinte :
Vamos examinar o código com mais detalhes:
- eu estou usando a classe Carro sem instanciar um objeto da classe => Carro.QuantosCarros()
- a instância de um objeto da classe me da acesso a todos os métodos da classe
- a classe usada sem instância me dá acesso somente ao método : QuantosCarros.
Então o que o método QuantosCarros tem de diferente ?
O método QuantosCarros da classe Carro possui na sua declaração a palavra chave : Shared.
Public Shared Sub QuantosCarros() Console.WriteLine("{0} carros vendidos ", quantidade) End Sub |
Mas o que significa Shared ?
A palavra chave Shared faz com que o método QuantosCarros esteja associado a classe e não com uma instância particular da classe.
Ele se torna acessível a partir da classe pois não precisa ser acessado através de uma instância da classe. Embora também possa ser acessado desta forma.
Com isto concluímos que membros declarados como Shared são membros da classe e não membros de instância.
Respondendo a pergunta temos que : podemos acessar membros declarados como Shared em uma classe sem criar uma instância da classe.
Nota: O equivalente em Java seria a palavra chave static.
Membros Estáticos Na OOP existe um tipo especial de membro chamado membro estático - static - no VB.NET também usamos o termo Shared . Um membro estático é aquele que pode ser acessado sem ser necessário fazer a instância do objeto , isto é , eles estão sempre disponíveis , basta pegar e usar. Vamos mostrar como aplicar este conceito na nossa classe Aluno:
Nota: A plataforma .NET possui muitos membros estáticos. Você usou um sem perceber . Quer ver só ? Quando criamos a classe a aluno , usamos o método WriteLine da classe console para exibir as notas , pois bem , acessamos Writeline sem ter que instanciar o objeto System.Console |
Entendeu agora ???
Até a próxima ...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
|
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: