🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP POO El tratamiento de Objetos

ABAP POO El tratamiento de Objetos

ABAP POO El tratamiento de Objetos

Unidad-1-Lección-9: Tratamiento de Objetos 1) Utilización de los componentes de un objeto

Los programas sólo pueden acceder a los componentes de las instancias usando las referencias de las variables referenciadas, siguiendo las sintaxis, siendo r_vehiculo la variable referenciada:

color realizamos lo siguiente:

r_vehiculo->color.

encendido realizaremos lo siguiente:

CALL METHOD r_vehiculo->encendido().

O la versión reducida, omitiendo el CALL METHOD:


r_vehiculo=>encendido().

Nota: Cuando llamamos a un método de instancia desde dentro de otro método de instancia, se puede omitir la referencia de objeto.

Veamos un ejemplo:

DATA: r_vehiculo TYPE REF TO vehiculo,
marca TYPE string,
modelo TYPE string,
numero TYPE i.

START-OF-SELECTION.

CREATE OBJECT r_vehiculo.

r_vehiculo->obtener_tipo( IMPORTING ex_marca = marca
ex_modelo = modelo ).

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. También es posible acceder a los componentes estáticos de una clase antes de que un objeto de la clase haya sido creado.

Siendo vehiculo la clase, la sintaxis es la siguiente:

color realizamos lo siguiente:

vehiculo->color.

encendido realizamos lo siguiente:

CALL METHOD vehiculo=>encendido().

o la versión reducida omitiendo el CALL METHOD:

vehiculo=>encendido().

Nota: Cuando llamamos a un método estático desde dentro de la clase, se puede omitir el nombre de la clase.

Veamos un ejemplo:

DATA: numero TYPE i.

....

vehiculo=>obtener_n_o_vehiculos( RECEIVING re_contador = numero ).

Audio Tip 1: Un objeto que requiere el servicio de otro objeto le envía un mensaje solicitando el servicio a este otro. Este mensaje menciona la operación a ser ejecutada. La implementación de esta operación es conocida como método. Cuando escribimos la sintaxis de un método, debemos tener en cuenta que no se deben dejar espacios en blanco entre el nombre del método y los paréntesis dentro de los cuales se almacenaran los parámetros del mismo. Por el contrario, si debemos dejar al menos un espacio en blanco entre los paréntesis.

2) Métodos Funcionales

Los métodos funcionales son aquellos que tienen un parámetro RETURNING. Esto significa que devuelven un valor. El parámetro RETURNING siempre debe ser pasado usando la adición VALUE, es decir, se debe pasar por valor.

Los métodos funcionales pueden ser llamados directamente dentro de varias expresiones:

Expresiones Lógicas: IF, ELSEIF, WHILE, WAIT

Condiciones CASE: CASE, WHEN

Expresiones Aritméticas: COMPUTE

Fuentes de valores como copia local: MOVE

Condiciones de búsqueda para tablas internas, asumiendo que el operando no es un componente de la fila: LOOP AT … WHERE

Veamos un ejemplo de declaración de un método funcional:

CLASS vehiculo DEFINITION.

PUBLIC SECTION.

METHODS: obtener_consumo_promedio IMPORTING im_distancia TYPE i
im_combustible TYPE i
RETURNING VALUE(re_combustible) TYPE i.

ENDCLASS. "VEHICULO DEFINITION

DATA: r_vehiculo1 TYPE REF TO vehiculo,
r_vehiculo2 TYPE REF TO vehiculo,
consumo_promedio_comb TYPE i.
....

consumo_promedio_comb = r_vehiculo1->obtener_consumo_promedio( im_distancia = 500 im_combustible = 50 )
+ r_vehiculo2->obtener_consumo_promedio( im_distancia = 600 im_combustible = 60 ).

3) Autoreferencia

Dentro de una clase se puede acceder también a los componentes individuales mediante la referencia a sí mismo ME:

color en la propia clase, realizaremos lo siguiente:

me->color.

encendido en la propia clase, realizaremos lo siguiente:

CALL METHOD me->encendido().

Veamos el siguiente ejemplo:

CLASS vehiculo DEFINITION.

PUBLIC SECTION.
METHODS asignar_tipo IMPORTING im_marca TYPE string
.....
PRIVATE SECTION.
DATA: marca TYPE string.

ENDCLASS.

CLASS vehiculo IMPLEMENTATION.
METHOD asignar_tipo.
DATA: marca TYPE string.

me->marca = im_marca.
TRANSLATE me->marca TO UPPER CASE.

ENDMETHOD.
ENDCLASS.

Audio Tip 2: En los objetos ABAP las autoreferencias están siempre predefinidas, pero solamente son útiles en ciertos contextos. Podemos referenciar un objeto utilizando la variable de referencia predefinida ME dentro de los métodos de instancia. Aunque en dichos métodos no es necesario utilizar la autoreferencia ME, podemos utilizarla igualmente para mejorar la legibilidad del código. Sin embargo, nos es sumamente útil cuando necesitamos que haya una clara diferencia entre los objetos de datos locales y los atributos de instancia que llevan el mismo nombre.


 

 

 


Sobre el autor

Publicación académica de Oscar Perez, en su ámbito de estudios para el Máster ABAP POO.

SAP Master

Oscar Perez

Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F

✒️Autor de: 105 Publicaciones Académicas

🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos

🎓Egresado de los módulos:

Certificación Académica de Oscar Perez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El tratamiento de Objetos" de la mano de nuestros alumnos.

SAP Senior

TRATAMIENTO DE OBJETOS UTILIZACION DE LOS COMPONENTES DE UN OBJETO Los programas solo pueden acceder a los componentes de las instancias. Para acceder al atributo: Para llamar al método de instancia encendido Cuando se llama de un método dentro de otro método de instancia se puede omitir la referencia. Para componentes estáticos o dependientes de instancia, solo dependientes de clase, se pueden usar tanto el nombre de la clase como la variable referenciada. También es posible acceder a los componentes estáticos de una clase antes de que un objeto de la clase haya sido creado. METODOS FUNCIONALES Son aquellos que poseen un parámetro returning, este parámetro siempre es pasado con...

Acceder a esta publicación

Creado y Compartido por: Daniel Fernando Yanez Guevara

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

1) Utilizacion de los componentes de un objeto: Para acceder al atributo color realizaremos lo siguiente: r_vehiculo->color. Para llamar el metodo de instancia encendido realizaremos lo siguiente: CALL METHOD r_vehiculo->encendido() o r_vehiculo->encendido() En el caso de los componentes estatios Para acceder al atributo color realizaremos lo siguiente: Vehiculo->color. Para llamar el metodo de instancia encendido realizaremos lo siguiente: CALL METHOD vehiculo=>encendido() o r_vehiculo=>encendido(). 2) Metodos funcionales. Son aquellos que tienen un parametro RETURNING, esto significa que devuelven un valor , el parametro RETURNING debe ser pasado con la adicion VALUE es decir debe pasar un valor. 3) Autoreferencia. Dentro...

Acceder a esta publicación

Creado y Compartido por: Juan Jose Pujol Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Expert


Para acceder a un atributo de un objeto, se usa la sentencia objeto->atributo y para llamar a un método CALL METHOD objeto->metodo( ). Los métodos funcionales son aquellos que tienen un parámetro RETURNING (devuelven un valor que se pasa mediante la adición VALUE). Para indicar la autoreferencia de un objeto se usa "me->".

Acceder a esta publicación

Creado y Compartido por: Daniel Alejandro Monteros Segura

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

UTILIZACIÓN DE LOS COMPONENTES DE UN OBJETO Los programas solo pueden acceder a los componentes de las instancias usando las referencias de las variables referenciadas: Para acceder a un atributo: r_vehiculo->color. Para acceder a un método: CALL METHOD r_vehiculo->encendido() o r_vehiculo->encendido(). Para los componentes estáticos o independientes de instancia, solo dependientes de clase, se puede utilizar el nombre de la clase como variable referenciada. Para acceder al atributo estático: name_class->color. Para acceder al método estático: CALL METHOD name_class =>encendido() o name_class =>encendido(). METODOS FUNCIONALES Son aquellos que tienen un parámetro RETURNING,...

Acceder a esta publicación

Creado y Compartido por: Julio Villalta / Disponibilidad Laboral: FullTime

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!