PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Presentación
  • Sintaxis del constructor de la clase
  • Nota sobre los constructores
  • Sintaxis de los constructores para las clases base y los miembros
  • Notas
  • Sintaxis del método Destructor
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Presentación
Cuando se crea una clase en el editor de código, los métodos Constructor y Destructor son creados automáticamente por Default.
  • El método Constructorsi lo define el desarrollador, se llama automáticamente al instanciar un objeto. Se utiliza para realizar los pasos de inicialización para el objeto o relacionados con el objeto (asignación de barras, comprobaciones, etc.).
  • TEl método de destrucción, si está definido por el desarrollador, es llamado automáticamente cuando se borra el objeto (salida del Procedure en el que se instanció el objeto). Se puede utilizar para liberar recursos, por ejemplo....
Los métodos Constructor y Destructor no pueden contener las siguientes funciones: Evento, Timer, Multitask, DnDEvent, DDEEvent, CallDLL32, etc.
Versiones 16 y posteriores
Observaciones:
  • Los métodos del Constructor pueden ser públicos, protegidos o privados.
  • Usted tiene la capacidad de crear algunos constructores de sintaxis múltiple. Consulte Prototipo overload para obtener más detalles.
Nueva funcionalidad versión 16
Observaciones:
  • Los métodos del Constructor pueden ser públicos, protegidos o privados.
  • Usted tiene la capacidad de crear algunos constructores de sintaxis múltiple. Consulte Prototipo overload para obtener más detalles.
Observaciones:
  • Los métodos del Constructor pueden ser públicos, protegidos o privados.
  • Usted tiene la capacidad de crear algunos constructores de sintaxis múltiple. Consulte Prototipo overload para obtener más detalles.
Versiones 17 y posteriores
AndroidUniversal Windows 10 App Esta función ya está disponible para las aplicaciones Android y Windows Phone.
iPhone/iPad Esta característica está ahora disponible para las aplicaciones de iPhone/iPad.
Nueva funcionalidad versión 17
AndroidUniversal Windows 10 App Esta función ya está disponible para las aplicaciones Android y Windows Phone.
iPhone/iPad Esta característica está ahora disponible para las aplicaciones de iPhone/iPad.
AndroidUniversal Windows 10 App Esta función ya está disponible para las aplicaciones Android y Windows Phone.
iPhone/iPad Esta característica está ahora disponible para las aplicaciones de iPhone/iPad.
Versiones 21 y posteriores
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Nueva funcionalidad versión 21
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Universal Windows 10 App Esta función está disponible en el modo Universal Windows 10 App.
Apple Watch Esta función está disponible en el modo Apple Watch.
Sintaxis del constructor de la clase
Declaración del constructor
PROCEDURE [<Access>] Constructor([<Parameters>])
Detalles de la sintaxis
Versiones 16 y posteriores
<Acceso>: Opcional
3 niveles de acceso disponibles:
  • PÚBLICO (por Default): El constructor es accesible fuera de la clase.
  • PROTECTED: El constructor es accesible en la clase y en las clases derivadas.
  • PRIVATE: El constructor es accesible sólo en la clase.
Vea Notas sobre los Constructores para más detalles.
Observación: Para modificar el alcance del Constructor, tiene la posibilidad de usar el menú contextual en el método en el explorador del proyecto.
Nueva funcionalidad versión 16
<Acceso>: Opcional
3 niveles de acceso disponibles:
  • PÚBLICO (por Default): El constructor es accesible fuera de la clase.
  • PROTECTED: El constructor es accesible en la clase y en las clases derivadas.
  • PRIVATE: El constructor es accesible sólo en la clase.
Vea Notas sobre los Constructores para más detalles.
Observación: Para modificar el alcance del Constructor, tiene la posibilidad de usar el menú contextual en el método en el explorador del proyecto.
<Acceso>: Opcional
3 niveles de acceso disponibles:
  • PÚBLICO (por Default): El constructor es accesible fuera de la clase.
  • PROTECTED: El constructor es accesible en la clase y en las clases derivadas.
  • PRIVATE: El constructor es accesible sólo en la clase.
Vea Notas sobre los Constructores para más detalles.
Observación: Para modificar el alcance del Constructor, tiene la posibilidad de usar el menú contextual en el método en el explorador del proyecto.
Parámetros> <Parámetros
Parámetros opcionales del constructor. Si se especifican estos parámetros, deben pasarse durante declaración de objetos o durante la instanciación dinámica.
Declaración del objeto: el constructor es llamado automáticamente
<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 opcionales del constructor.
Instanciación dinámica: el constructor es llamado automáticamente
<ObjectName> is dynamic [object] <ClassName>
<ObjectName> = new <ClassName> ([<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 opcionales del constructor.
Nota sobre los constructores
Versiones 16 y posteriores
Alcance y acceso de los Constructores
El Constructor de una clase puede ser público, protegido o privado.
Herencia:
  • Una clase con Constructor público puede ser heredada.
  • Una clase con Constructor protegido puede ser heredada.
  • Una clase con Constructor privado puede ser heredada.
Accesibilidad de Constructores privados o protegidos:
  • Un objeto de la clase no se puede instanciar en un código de proyecto.
  • Una array cuyos elementos son instancias de la clase no puede ser declarada en un código de proyecto.
  • Un miembro del tipo de la clase en un Variable compuesto, una estructura u otra clase no puede ser declarado en un código de clase o en un código de proyecto.
Nota importante: Independientemente del alcance del Constructor, los objetos dinámicos siempre se pueden declarar en un código de proyecto.. Si no se puede realizar la instanciación (la asignación) de los objetos, la declaración de objetos dinámicos siempre es posible.. Por lo tanto, los siguientes códigos son siempre válidos:
// In these two case, the instantiation is not performed during the declaration.
Object1 is dynamic Class1
Object2 is Class1 <-...
Para instanciar objetos en el código de proyectotiene la capacidad de utilizar un método global de la clase.
Ejemplo con un constructor privado:
// Global method of ClassWithPrivateConstructor
GLOBAL Procédure GlobalMethodAllocation(...)

o is ClassWithPrivateConstructor
RESULT o
// *****************************************

// Retrieve an object of the class from a project code:

// Solution 1:
o2 is dynamic ClassWithPrivateConstructor
o2 = ClassWithPrivateConstructor.GlobalMethodAllocation(...)

// Solution 2:
o3 is ClassWithPrivateConstructor <- CClassWithPrivateConstructor.GlobalMethodAllocation(...)
Atención: El operador de asignación (=) se comporta de forma diferente con los objetos dinámicos y con los objetos no dinámicos.. El uso de los objetos o2 y o3 en las asignaciones desencadenará un comportamiento diferente:
// Declaration of a new dynamic object.
o4 is dynamic ClassWithPrivateConstructor

// o2 is a reference to o4
o2 = o4

// The members of o4 are copied into o3
o3 = o4

Nueva funcionalidad versión 16
Alcance y acceso de los Constructores
El Constructor de una clase puede ser público, protegido o privado.
Herencia:
  • Una clase con Constructor público puede ser heredada.
  • Una clase con Constructor protegido puede ser heredada.
  • Una clase con Constructor privado puede ser heredada.
Accesibilidad de Constructores privados o protegidos:
  • Un objeto de la clase no se puede instanciar en un código de proyecto.
  • Una array cuyos elementos son instancias de la clase no puede ser declarada en un código de proyecto.
  • Un miembro del tipo de la clase en un Variable compuesto, una estructura u otra clase no puede ser declarado en un código de clase o en un código de proyecto.
Nota importante: Independientemente del alcance del Constructor, los objetos dinámicos siempre se pueden declarar en un código de proyecto.. Si no se puede realizar la instanciación (la asignación) de los objetos, la declaración de objetos dinámicos siempre es posible.. Por lo tanto, los siguientes códigos son siempre válidos:
// In these two case, the instantiation is not performed during the declaration.
Object1 is dynamic Class1
Object2 is Class1 <-...
Para instanciar objetos en el código de proyectotiene la capacidad de utilizar un método global de la clase.
Ejemplo con un constructor privado:
// Global method of ClassWithPrivateConstructor
GLOBAL Procédure GlobalMethodAllocation(...)

o is ClassWithPrivateConstructor
RESULT o
// *****************************************

// Retrieve an object of the class from a project code:

// Solution 1:
o2 is dynamic ClassWithPrivateConstructor
o2 = ClassWithPrivateConstructor.GlobalMethodAllocation(...)

// Solution 2:
o3 is ClassWithPrivateConstructor <- CClassWithPrivateConstructor.GlobalMethodAllocation(...)
Atención: El operador de asignación (=) se comporta de forma diferente con los objetos dinámicos y con los objetos no dinámicos.. El uso de los objetos o2 y o3 en las asignaciones desencadenará un comportamiento diferente:
// Declaration of a new dynamic object.
o4 is dynamic ClassWithPrivateConstructor

// o2 is a reference to o4
o2 = o4

// The members of o4 are copied into o3
o3 = o4

Alcance y acceso de los Constructores
El Constructor de una clase puede ser público, protegido o privado.
Herencia:
  • Una clase con Constructor público puede ser heredada.
  • Una clase con Constructor protegido puede ser heredada.
  • Una clase con Constructor privado puede ser heredada.
Accesibilidad de Constructores privados o protegidos:
  • Un objeto de la clase no se puede instanciar en un código de proyecto.
  • Una array cuyos elementos son instancias de la clase no puede ser declarada en un código de proyecto.
  • Un miembro del tipo de la clase en un Variable compuesto, una estructura u otra clase no puede ser declarado en un código de clase o en un código de proyecto.
Nota importante: Independientemente del alcance del Constructor, los objetos dinámicos siempre se pueden declarar en un código de proyecto.. Si no se puede realizar la instanciación (la asignación) de los objetos, la declaración de objetos dinámicos siempre es posible.. Por lo tanto, los siguientes códigos son siempre válidos:
// In these two case, the instantiation is not performed during the declaration.
Object1 is dynamic Class1
Object2 is Class1 <-...
Para instanciar objetos en el código de proyectotiene la capacidad de utilizar un método global de la clase.
Ejemplo con un constructor privado:
// Global method of ClassWithPrivateConstructor
GLOBAL Procédure GlobalMethodAllocation(...)

o is ClassWithPrivateConstructor
RESULT o
// *****************************************

// Retrieve an object of the class from a project code:

// Solution 1:
o2 is dynamic ClassWithPrivateConstructor
o2 = ClassWithPrivateConstructor.GlobalMethodAllocation(...)

// Solution 2:
o3 is ClassWithPrivateConstructor <- CClassWithPrivateConstructor.GlobalMethodAllocation(...)
Atención: El operador de asignación (=) se comporta de forma diferente con los objetos dinámicos y con los objetos no dinámicos.. El uso de los objetos o2 y o3 en las asignaciones desencadenará un comportamiento diferente:
// Declaration of a new dynamic object.
o4 is dynamic ClassWithPrivateConstructor

// o2 is a reference to o4
o2 = o4

// The members of o4 are copied into o3
o3 = o4

Sintaxis de los constructores para las clases base y los miembros
Ejecutar el constructor de una clase base o miembro
Si una clase base o un miembro del tipo de clase tiene un constructor, se llama automáticamente a este constructor sin parámetro. Debes hacerlo:
  • asignar valores de Default a los parámetros del constructor (o a los parámetros de la clase o miembro base)
  • llamar explícitamente al constructor pasando los parámetros.
Llamando al método constructor para construir una clase
Constructor <ClassName>(<Parameters>)
Detalles de la sintaxis
<ClassName>
Nombre que identifica a la clase.
<Parámetros>
Parámetros del constructor.
Llamar al constructor para que construya un miembro
Constructor <Member name> (<Parameters>)
Detalles de la sintaxis
<Nombre del miembro>
Nombre que identifica al miembro de la clase.
<Parámetros>
Parámetros del constructor.
Ejemplo
Los constructores explícitos de la clase base o miembro deben ser llamados en la primera declaración del constructor de la clase derivada.
//----Declare the BaseClass1 class
BaseClass1 is Class
BaseClass1Member is int
END
//---- Constructor of BaseClass1
PROCÉDURE Constructor(Param1)
Info("Constructor of BaseClass1 => " + Param1)
//----Declare the class named BaseClass2
BaseClass2 is Class
BaseClass2Member is int
END
//---- Constructor of BaseClass2
PROCÉDURE Constructor(Param1)
Info("Constructor of BaseClass2 => " + Param1)
//---- Declaration of DerivedClass
DerivedClass is Class
// Inheritance of BaseClass1 whose
// Constructor expects a parameter
inherits from ClassBase1
// BaseClass2 member whose
// Constructor expects a parameter
DerivedClassMember is BaseClass2
END
//----Constructor of DerivedClass
PROCÉDURE Constructor()
// Explicit call to Constructor
Constructor BaseClass1(10)
Constructor DerivedClassMember(20)
Notas
Default Valor de los miembros
Cada miembro de una clase es set a cero si ningún constructor es associated con la clase.
Sintaxis del método Destructor
Declaración del método
PROCEDURE Destructor <ClassName>()
Detalles de la sintaxis
<ClassName>
Nombre que identifica la clase. El destructor no acepta ningún parámetro.
AndroidJava Caso especial en Java/Android
El concepto de destructor no existe en Java/Android. Por lo tanto, el código encontrado en el destructor de una clase nunca se ejecutará.

Un objeto es liberado por el recolector de basura cuando ya no está referenciado en la aplicación.. No hay forma de prever el momento en que esta operación ocurra..

Para forzar la liberación de un objeto, puede asignarlo a NULL o utilizar la sentencia Libre.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario