Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Métodos Especiales
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Métodos Especiales 
 
Buenas!.

He estado mirando los métodos especiales en la ayuda online de gambas en inglés.
Podemos ver métodos como:

Citar:

_attach     When an object is attached to or detached from its parent.
_call     When using an object as if it is a function.
_compare     When comparing an object with another one.
_get     When reading an object as if it is an array.
_init     When the object class is loaded.
_next     When enumerating the object.
_new     When an object is created.
_property     To know if an unknown symbol is a method or a property.
_put     When writing to an object as if it is an array.
_ready     When an object construction is finished, and an object is ready to be used.
Since 3.9

_unknown     When trying to use an unknown object method or property.


En el manual de gambas, el libro, aparece _free . Que ya no se encuentra.
Pero parece que hay más.

 metodos_especiales_1484420607_365564

_exit por ejemplo.
_ready no aparece en la lista desplegable.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Métodos Especiales 
 
interesante, yo apenas aprendí el _new  

ojala alguien que sepa mucho sobre ellos se mande algún manualsito para entender lo básico sobre ellos.  

me pregunto si en realidad estos son métodos especiales o eventos especiales???
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Métodos Especiales 
 
v3ctor:

La verdad es conozco pocos de estos. Hoy estuve usando _init. Es muy curioso cuando lo usas con la herencia.
Al heredar de una clase padre una subclase, se ejecuta primeramente el _new de la clase padre y no el _new
de la subclase. Así que cuando instancias un objeto de la subclase si quieres que haga algo primero la subclase
debes hacerlo en su  _init. Al menos con variables.

Además _init es método estático.

Imagina que tienes una clase padre como esta:

Clase ArchivoAudio.

Private $nombrearchivo As String
Property nombrearchivo As String

Static Public ext As String

Public Sub _new(nombrea As String)
    
   If Not AcabarEn(nombrea, ext) Then
    Error.Raise("Formato no valido")
  Else
    Me.nombrearchivo = nombrea    
  Endif
        
End

Private Function nombrearchivo_Read() As String
  
  Return $nombrearchivo  
  
End

Private Sub nombrearchivo_Write(Value As String)
  
  $nombrearchivo = Value
  
End

Public Function AcabarEn(palabra As String, terminaen As String) As Boolean
  
  Return RInStr(palabra, terminaen)
  
End
 


Y una subclase: ArchivoMP3

Inherits ArchivoAudio

Static Public Sub _init()

'Lo primero que se ejecuta al cargar la clase
ArchivoAudio.ext = "mp3"
  
End

Public Sub _new()
  
'Al heredar primero ejecuta el _new de la clase padre
  
End

Public Sub play()

  Print Subst("Ejecutándose &1 como mp3", Me.nombrearchivo)
  
End
 


Este es su Main:

Public Sub Main()

 Dim a1 As ArchivoMP3
 
 a1 = New ArchivoMP3("musica.mp3")
 a1.play()

End
 


Si quieres saber mas:
Es un ejemplo que trabaja (tan solo con nombres por ahora) con distintas extensiones de archivos. mp3, ogg y wav.
Cada uno, una subclase. Usa el polimorfismo. Hay lenguajes que usa más o menos una técnica llamada "duck typing", Python por ejemplo.
El polimorfismo se apoya en la herencia entre clases. "duck typing" rompe con eso. Con esa idea se demuestra en parte que la herencia
no siempre se necesita.

Citar:

En los lenguajes de programación orientados a objetos, se conoce como duck typing el estilo de tipificación dinámica de datos en que el conjunto actual de métodos y propiedades determina la validez semántica, en vez de que lo hagan la herencia de una clase en particular o la implementación de una interfaz específica.


Duck_typing

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Metodos Especiales _get, _put tomas General 6 Miercoles, 24 Noviembre 2010, 18:58 Ver último mensaje
jsbsan
No hay nuevos mensajes Escribir Caracteres Especiales Como La Let... user3304mm7126 Aplicaciones/Fragmentos de Código 3 Sabado, 11 Diciembre 2010, 15:06 Ver último mensaje
jsbsan
No hay nuevos mensajes Teclas Especiales En Keypress (SOLUCIONADO) ahtonio General 2 Martes, 21 Diciembre 2010, 18:48 Ver último mensaje
ahtonio
No hay nuevos mensajes Caracteres Especiales Shell HTML y CSS 4 Lunes, 04 May 2020, 15:25 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron