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)
  • Presentación
  • Manejo de los miembros de un objeto
  • Presentación
  • Llamada a un miembro que pertenece a un objeto distinto del objeto actual
  • Llamada a un miembro del objeto actual
  • Llamar a un miembro de una clase de ancestros que fue redefinida
  • Llamar a un miembro de una clase general
  • Observación
  • Manejo de los métodos de un objeto
  • Presentación
  • Llamada a un método que pertenece a un objeto distinto del objeto actual
  • Llamada a un método del objeto actual
  • Llamar a un método de una clase de ancestros que fue redefinido
  • Llamar a un método de una clase general
  • Ejemplo
  • Observación
  • Asignación de objetos
  • Reglas de asignación
  • Detalles y ejemplos
  • Instancias de clases y arrays
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
Presentación
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.
Observación: Para recuperar la instancia del objeto actual en los métodos de la clase, use la palabra clave object o la palabra clave this.
Esta página de ayuda presenta:
Manejo de los miembros de un objeto

Presentación

Un miembro de un objeto es un associated de datos con el objeto. Un objeto es necesariamente propietario de todos los miembros descritos en la clase. Un miembro también se llama Property del objeto.
Los miembros de un objeto corresponden a todos los miembros definidos para la clase fuente del objeto.
Recordatorio: un miembro es declarado en la clase.

Llamada a un miembro que pertenece a un objeto distinto del objeto actual

Para llamar a un miembro que pertenece a un objeto distinto al objeto actual, se debe utilizar la siguiente sintaxis:
<Object Name> . <Member Name>
<Object Name>: <Member Name>
El miembro se busca entre los miembros de la clase de objeto. Si no se encuentra el miembro, se busca entre los miembros de las clases de ancestros de la clase de objeto.

Llamada a un miembro del objeto actual

Se pueden usar dos sintaxis para llamar a un miembro del objeto actual:
  • Sintaxis simplificadaSi la siguiente opción está activada, esta opción está disponible: "Clases: prefijos opcionales ":" y "::" para acceder a los miembros y a los métodos" (esta opción está habilitada por Default para los nuevos proyectos):
    <Member Name>
  • Sintaxis completa (siempre disponible):
    :<Member Name>

Llamar a un miembro de una clase de ancestros que fue redefinida

Para llamar a un miembro que pertenece a una clase de ancestros que fue redefinida, se debe usar la siguiente sintaxis:
<Object Name> . <Class Name> . <Member Name>
<Object Name>: <Class Name>:: <Member Name>

Llamar a un miembro de una clase general

Para llamar a un miembro que pertenezca a una clase general, se debe utilizar la siguiente sintaxis:
<Class Name> . <Member Name>
<Class Name>:: <Member Name>

Observación

Los accesos a los miembros pueden ser secuenciados. Por ejemplo:
// Sequence of members
MyObject.Member1[1]:Member2:Member3
Manejo de los métodos de un objeto

Presentación

Los métodos de un objeto son características de associated con el objeto. Un objeto posee necesariamente todos los métodos descritos en la clase. Estos métodos se pueden llamar de diferentes maneras según la ubicación de la llamada.

Llamada a un método que pertenece a un objeto distinto del objeto actual

Para llamar a un método que pertenece a un objeto distinto al objeto actual, se debe utilizar la siguiente sintaxis:
<Object Name> . <Method Name> ([<Parameters>])
<Object Name>: <Method Name> ([<Parameters>])
El miembro se busca entre los métodos de la clase de objeto. Si no se encuentra el método, se busca entre los métodos de las clases de ancestros de la clase de objeto.

Llamada a un método del objeto actual

Para llamar a un método que pertenece al objeto actual, se debe utilizar la siguiente sintaxis:
. <Method Name> ([<Parameters>])
Observación: Para conservar la compatibilidad con las versiones anteriores, se puede utilizar la siguiente sintaxis: ":<Nombre método>([<Parámetros>])". Para usar esta sintaxis, desmarque "Clases: prefijos opcionales (":":" y ":::") para acceder a los miembros y a los métodos".

Llamar a un método de una clase de ancestros que fue redefinido

Para llamar a un método de una clase de ancestros que fue redefinido, se debe usar la siguiente sintaxis:
<Object Name> . <Class Name> . <Method Name> ([<Parameters>])
<Object Name>: <Class Name>:: <Method Name> ([<Parameters>])

Llamar a un método de una clase general

Para llamar a un método de una clase general, se debe utilizar la siguiente sintaxis:
<Class Name> . <Method Name> ([<Parameters>])
<Class Name>:: <Method Name> ([<Parameters>])

Ejemplo

FileS is CFile
FileD is CFile
str1,str2 are strings
 
// Call the method for file selection
FileS.FileSelection()
FileD.FileSelection()
 
// Call the method for checking the available space
IF FileS.RemainingSpace(FileD.Directory[[1]]) THEN
str1 = FileS:Directory + "\" + FileS:Name + "." + FileS:Extension
str2 = FileD:Directory + "\" + FileD:Name + "." + FileD:Extension
fCopyFile(str1, str2)
ELSE
Error("Insufficient space")
END

Observación

Las llamadas a los métodos se pueden utilizar en secuencia. Por ejemplo:
// Sequence of .NET accesses
NETObject.Metod1().Member2[n].Method3()
 
// Method that allocates and returns a class chained with a call
ClassObject.AllocateOperator().PerformOperation()
Asignación de objetos

Reglas de asignación

Las reglas de asignación entre objetos y entre objetos dinámicos son las siguientes:
  • Operador =: Copia o toma de reference
    Operador =
    ObjetoObjeto dinámico
    ObjetoCopiarCopiar
    Objeto dinámicoTomando a referenceTomando a reference
  • Operador <= operador: Copiar
    Operador <= operador
    ObjetoObjeto dinámico
    ObjetoCopiarCopiar
    Objeto dinámicoCopiarCopiar
Nota: Para los miembros declarados como "XXX dinámicos", el operador <= realiza una copia de la reference, por lo que get el mismo objeto después de la asignación.
  • <- Operador: Tomando a reference
    <- Operador
    ObjetoObjeto dinámico
    ObjetoTomando a referenceTomando a reference
    Objeto dinámicoTomando a referenceTomando a reference

Detalles y ejemplos

  • Asignación entre dos objetos:
    O1, O2 are Class
    // The = operator is used to copy a member
    O1 = O2
    // Operator
    • The = operador y el <= operador se utilizan para los miembros de copy. En este caso, todos los miembros se copian en la instancia O1.
    • Caso especial para la arrays: Sólo se copian los arrays locales.. Todos los arrays no locales utilizan la misma instancia. Esta observación no se aplica a la asociación arrays.
    • The <- operador se utiliza para tomar un reference en el objeto pasado en operando.
  • Asignación entre dos objetos dinámicos:
    pO1 is dynamic Class
    pO2 is dynamic Class
    // The = operator is used to take reference
    pO1 = pO2
    // Operator
    • The = operador y el <- operador se utilizan para tomar reference. En este caso, la dinámica Variable pO1 utiliza el objeto pO2.
    • El operador <= permite copiar los miembros. En este caso, todos los miembros se copian en la instancia pO1.
    • Para permitir la copy con el <= operador, las variables dinámicas p01 y p02 deben ser asignadas y declaradas con el mismo tipo.
  • Asignación entre dos objetos (dinámico y no dinámico):
    O1 is Class
    pO1 is dynamic Class
    // The = operator is used to take reference
    // The dynamic variable pO1 uses the O1 object
    pO1 = O1
     
    // The = operator is used to copy members
    // All the members are copied into the O1 instance
    O1 = pO1
    • Dependiendo de la orden de los operandos, el = operador se utiliza para copiar miembros o para tomar reference.
    • Para simplificar estas sintaxis, se recomienda utilizar los operadores <= y <-:
      • el operador <= siempre se utiliza para realizar un copy de los miembros. Para los miembros declarados como "XXX dinámicos", el operador <= realiza una copia de la reference, por lo que get el mismo objeto después de la asignación.
      • El operador siempre se utiliza para realizar una toma de reference.
        O1 is Class
        pO1 is dynamic Class
         
        // <- operator: taking reference
        // The dynamic variable pO1 points to the O1 object
        p01 <- O1
         
        // <= operator: copying members
        // All the members are copied into the pO1 instance
        pO1 <= O1

Instancias de clases y arrays

Cuando se copian instancias de clases, todos los miembros de la clase se copian en la nueva instancia excepto arrays. Por lo tanto, si el valor de un miembro de array es modificado, este valor es modificado en todas las instancias.
A get independiente arrays en todas las instancias de las clases, un array local debe ser declarado de la siguiente manera:
SystemClass is Class
aDefaultArray is local array of 1 int
END
La arrays asociativa, las pilas y las colas no pueden ser declaradas localmente.. Al copiar instancias, se copian automáticamente la arrays asociativa, las colas y las pilas..
Para obtener más información, consulte Instanciación de un objeto.
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