|
|
|
|
- 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
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):
- Sintaxis completa (siempre disponible):
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()
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 = | | Objeto | Objeto dinámico | Objeto | Copiar | Copiar | Objeto dinámico | Tomando a reference | Tomando a reference |
- Operador <= operador: Copiar
| | | | Operador <= operador | | Objeto | Objeto dinámico | Objeto | Copiar | Copiar | Objeto dinámico | Copiar | Copiar |
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 | | Objeto | Objeto dinámico | Objeto | Tomando a reference | Tomando a reference | Objeto dinámico | Tomando a reference | Tomando 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..
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|