|
|
|
|
- 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
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....
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. Para obtener más información, consulte Prototipo overload.
Sintaxis del constructor de la clase Declaración del constructorPROCEDURE [<Access>] Constructor([<Parameters>]) Detalles de la sintaxis <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.
Para obtener más información, consulte Notas sobre los Constructores.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. 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 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 miembroSi 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 claseConstructor <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 miembroConstructor <Member name> (<Parameters>) Detalles de la sintaxis <Nombre del miembro>
Nombre que identifica al miembro de la clase. <Parámetros>
Parámetros del constructor. EjemploLos 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 BaseClass2 class 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)
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étodoPROCEDURE Destructor <ClassName>() Detalles de la sintaxis <ClassName>
Nombre que identifica la clase. El destructor no acepta ningún parámetro.
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|