AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / POO (Programación Orientada a Objetos)
  • Resumen de un objeto
  • Sintaxis para declarar/instanciar un objeto
  • Declarar/Instanciar un objeto
  • Declarar/Instanciar un objeto NULL
  • Observación: Objeto actual
  • Miembros y métodos
  • Vida útil de un objeto
  • reference sobre un objeto local
  • Devolución de un objeto
  • Objetos en los bucles
  • Liberar el objeto
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Instanciación de un objeto
Resumen de un objeto
Para acceder a una clase, el objeto debe declararse como parte de la clase a manipular, esto se denomina Instanciación de objeto object.
Una instancia es un objeto que pertenece a una clase determinada.
To manipular un objeto, usted debe:
  1. Describa la clase.
  2. Instancia el objeto.
Un objeto puede ser pasado en parámetro a una función o a un Procedure.
Observación: Tiene la capacidad de instanciar dinámicamente un objeto a una clase. La implementación del polimorfismo requiere la instanciación dinámica. Para obtener más información, consulte Instanciación dinámica.
Ejemplo de objeto: "SourceFile" es objeto de la clase "File. Para este objeto, usted tiene la capacidad de manipular los miembros llamados "Nombre", "Extensión", etc.
SourceFile is File object
 
SourceFile is File
Sintaxis para declarar/instanciar un objeto

Declarar/Instanciar un objeto

<ObjectName> is [object] <Class Name> ([<Parameters>])
Detalles de la sintaxis
Nombre del Objeto> <Nombre del Objeto
Nombre que identifica la instancia de la clase.
<Nombre de la clase>
Nombre que identifica a la clase, definido al crear la clase en el editor de código.
Parámetros> <Parámetros
Parámetros opcionales del constructor. Para obtener más información, consulte Método constructor.

Declarar/Instanciar un objeto NULL

<ObjectName> is [object] <Class Name> ([<Parameters>]) = NULL
Esta sintaxis se utiliza para declarar un objeto sin instanciarlo.. En este caso:
  • el <- operador se utiliza para tomar un reference sobre el objeto.
  • la declarada Variable se comporta como si la declaración fuera una declaración no dinámica: el = operador realiza una copy de los miembros.
  • el objeto manejado puede ser devuelto como valor de retorno de la Procedure o método.
  • en algunos casos avanzados, el objeto manipulado puede ser destruido para anticipar la operación de destrucción de automatic.

Observación: Objeto actual

La palabra clave Object también puede ser usada para identificar el objeto actual.
También puede usar la palabra clave This para acceder al objeto actual.

Miembros y métodos

Para obtener más información, consulte Usar un objeto.
Vida útil de un objeto

reference sobre un objeto local

El objeto se crea durante su declaración. El objeto es local de Default.
Los objetos locales no se destruyen automáticamente al final de la ejecución de Process. Sólo el local reference es liberado.
Por lo tanto, si otro reference fue tomado sobre el objeto, el objeto no será destruido cuando el reference local sea liberado.
Ejemplo:
// Declaration code of global variables
gpo is Class1 dynamic
gArr is array of Class1 dynamic
 
// Any code
o1, o2, o3 are Class1
gpo1 = o1
Add(gArr, o2)
 
// At the end of process
// o1 is not destroyed because it is referenced by the global variable gpo
// o2 is not destroyed because it was added to the gArr array
// o3 is not destroyed because there is only the local reference

Devolución de un objeto

Tienes la capacidad de devolver un objeto manejado por un Variable local dinámico o no dinámico.
Observación: En las versiones anteriores, sólo tenías la posibilidad de devolver un objeto manejado por un Variable local dinámico.

Objetos en los bucles

En un bucle, los objetos pueden ser manejados por variables locales no dinámicas y sin asignación explícita.
Los objetos declarados en un bucle se reasignan en cada iteración del bucle y se libera el reference sobre el objeto de la iteración anterior:
  • si no se ha tomado ningún otro reference, el objeto es destruido.
  • si se tomó un reference (Variable global, adición a un array, etc.), el objeto no se destruye.
Ejemplo:
// build the array
t is array of Class1 dynamic
FOR I = 1 TO 10
// create an object corresponding to the subscript
o is Class (x)
o.m_nIndex = i
// add the object into the array
Add(t,o)
END

Liberar el objeto

Los objetos utilizados por las variables locales no dinámicas pueden ser destruidos explícitamente por la palabra clave BORRAR para anticipar la destrucción de automatic.
Observación: Esta sintaxis es una sintaxis avanzada y debe utilizarse sólo en casos específicos.. En la mayoría de los casos, la operación de destrucción es automatic.
Recordatorio: En la mayoría de los casos, no se requiere el uso de la palabra clave DELETE.. El WLanguage destruye automáticamente los objetos que ya no son usados por ningún Variable. Los casos más comunes son:
  • destruyendo una set de objetos referenciados de forma cíclica
  • liberando los recursos utilizados por la Instance(sockets, archivos, ...) por adelantado a través de la ejecución del destructor.
Versión mínima requerida
  • Versión 14
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 27/05/2022

Señalar un error o enviar una sugerencia | Ayuda local