USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Implements
justus
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 15/10/2007 15:26 hs         
Alguem tem um tutorial de como usar o "Implements" no vb 6?
   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 16/10/2007 08:32 hs         
Não existe implementação de classe no VB6
   
justus
não registrado
ENUNCIADA !
Postada em 16/10/2007 08:35 hs   
Existe sim...
Dá uma olhada neste link
é que eu nçao entendi direito como funciona então resolvi perguntar no forum.
   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 16/10/2007 10:17 hs         
O que se apresenta não é exatamente implementação de classes. O que ele faz é basicamente atribuir outra classe como tipo de dados.
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 17/10/2007 02:00 hs            
justus, a implementação de classes no vb existe só que não do modo que é feito por exemplo em java. A funcionalidade é praticamente a mesma só que o vb não tem uma interface a implementar e sim outra classe que no caso chamaremos de interface.
Se aprofundar o assunto complica um pouco então vou tentar ser mais direto. Uma interface é um conjunto de propriedades e métodos declarados mas sem codificação.
Ela não é codificada justamente para que possa ser "implementada" em classes diversas. E em cada classe tratar como bem entender.
 
Um exemplo em que pode ser ilustrado isso é o ADO. O método "close()" de um objeto Connection é comum para qualquer banco de dados certo? Se vc abrir, access, txt, oracle, mssql, mysql, enfim, o método "close()" usa-se pra todos.
 
Imaginemos que lá tem a classe Oracle, mssql, access etc que cada uma das classes usa uma interface implementada chamada "close()". O "close()" do oracle vai ter internamente o comando EXIT, do mssql QUIT, do mysql TERMINATE, sei lá (usei exemplos esdrúxulos), e por aí vai. Só que tudo isso dentro da classe e o ADO só chama o "close()" para fechar a conexão entendeu?
 
Segue um exemplo:
Crie uma Classe chamada Animal só com isso:
 
Public Sub Move(ByVal Distance As Double)
End Sub
Public Sub Bite(ByVal What As Object)
End Sub
 
Crie uma outra classe chamada Pulga desta maneira:
 
Implements Animal
Public Sub Animal_Move(ByVal Distance As Double)
   Debug.Print "A pulga se moveu " & Distance & " cm"
End Sub
Public Sub Animal_Bite(ByVal What As Object)
   Debug.Print "A pulga mordeu um " & TypeName(What)
End Sub
Agora uma classe chamada jacare:
 
Implements Animal
Public Sub Animal_Move(ByVal Distance As Double)
   Debug.Print "O jacaré se moveu " & Distance & " cm"
End Sub
Public Sub Animal_Bite(ByVal What As Object)
   Debug.Print "O jacaré mordeu a " & TypeName(What)
End Sub
 
Num form crie um botão e coloque deste jeito:
 
Private Sub Command1_Click()
Dim objPulga As PULGA
Dim objJacare As JACARE
Dim anim As Animal

Set objPulga = New PULGA
Set objJacare = New JACARE

'a pulga mordendo o jacare
Set anim = objPulga
Call anim.Bite(objJacare)

'O jacare revidando
Set anim = objJacare
Call anim.Bite(objPulga)
 
' Os 2 se movendo
objPulga.Animal_Move (25)
objJacare.Animal_Move (125)
End Sub
 
 
 
observações:
 
1) Ao utilizar "Implements Animal" os métodos da interface são sempre NOMEDACLASSE_NOMEDOMETODO conforme exemplo:
 
ANIMAL_BITE
 
Se vc, dentro da classe implementada por exemplo PULGA, escrever "animal" e teclar CTRL+SPACE (aciona o intellisense) verá o método deste jeito.
 
2) Note que interface serve para múltiplas classes e posso tratar o método de um jeito para cada uma delas este é o conceito de polimorfismo. No vb não temos abstração propriamente dita então usamos Implements para ter algo parecido.
 
Se eu falei alguma besteira ou algo que os colegas não concordam sintam-se à vontade em opinar :)
 
Espero que tenha entendido.
 
at+
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página