
Utilizacion de los componentes de un objeto:
Los programas solo pueden acceder a lso componentes de las instancias usando las referencias de las variables referenciadas. La sintaxis es la siguiente, siendo r_vehiculo la variable referenciada: Para acceder al atributo COLOR se debere implementar: r_vehiculo->color.
Para llamar al metodo de instancia ENCENDIDO se debe: CALL METHOD r_vehiculo->encendido().
Cuando se llama a un metodo de instancia desde dentro de otro método de instancia se puede omitir la referencia al objeto.
Para los componentes estáticos o independientes de instancia, sólo dependientes de clase, se puede usar tanto el nombre de la clase como la variable referenciada. Tambien es posible acceder a los componentes estáticos de una clase antes de que un objeto de la clase haya sido creado.
La sintaxis, siendo vehiculo la clase es la siguiente: Para acceder al atributo estático color se debe: vehiculo->color.
Para llamar al método estático encendido se debe: CALL METHOD vehiculo=>encendido().
Cuando llamamos a un método estático desde dentro de la clase se puede omitir el nombre de la clase.
Un objeto que requiere el servicio de otro objeto, le envia un mensaje solicitando un servicio a este otro, este mensaje menciona la operacion a ser ejecutada, la implementacion de esta operacion es conocida como metodo. Cuando escribimos la sintaxis de un metodo debemos tener en cuenta que no podemos dejar espacio entre el nombre del metodo y el parentesis que almacenará los paramtros del mismo, por el contrario sí debemos dejar un espacio en blanco entre los parentesis.
Metodos Funcionales: son aquellos que tienen un parámetro RETURNING. Esto significa que devuelven un valor. El parámetro RETURNING simpre debe ser pasado usando la adición VALUE, es decir se debe pasar por valor.
Los metodos funcionales pueden ser llamados directamente dentro de varias expresiones:
- -Expresiones Lógicas: IF, ELSEIF, WHILE, CHECK, WAIT.
- -Condicioes CASE: CASE, WHEN.
- -Expresiones Aritméticas: COMPUTE.
- -Fuentes de valores como copia local: MOVE.
- -Condiciones de busqueda para tablas internas, asumiendo que el operando no es un componente de la fila: LOOP AT... WHERE.
Autoreferencia: Dentro de una clase se puede acceder tambien a los componentes individuales mediante la refencia a si mismo ME.
Para acceder al atributo color en la propia clase: me->color.
Para llamar al metodo encendido en la propia clase: CALL METHOD me->encendido().
En los objetos ABAP las autoreferencias estan siempre predefinidas pero solamente son útiles en ciertos contextos. Podemos referenciar un objeto utilizando la variable de referencia predefinida ME dentro de los metodos de instancia. aunque en dichos no es necesario usar la autoreferencia ME podemos utilizarla igualmente para mejorar la legibilidad del código. Sin embargo es muy util cuando deseamos una diferencia entre los objetos de datos locales y los atributos de instancia que llevan el mismo nombre.