✒️ABAP El tratamiento de los Objetos
ABAP El tratamiento de los Objetos
1° Utilización de Objetos:
Los objetos son instancias de las clases. Cada objeto tiene una identeidad propia y tiene sus propios atributos. Todos los aobjetos transitorios residen en el contecto de una sesión interna. Una clase puede tener un numero indefinido de instancias.
Un objeto existe mientras se esté usando el programa, lo que quiere decir que existe siempre que al menos un referencia apunte hacia él, o al menos un método del objeto esté registrado como método manejador de enventos.
2° Referencias de Objetos:
Son punteros a los objetos ABAP.
Las referencias a objetos se usan para acceder a un objeto desde un programa ABAP. En ABAP los objetos están siempre contenidos en variables referenciadas.
Las variables referenciadas o bien contienen el valor inicial o bien contienen la referencia a un objeto ya existente. La identidad de un objeto dependente de su referencia. Una variable referenciada que apunta a un objeto es la que conoce la identidad del objeto. Los usuarios no pueden acceder a la identidad del objeto directamente.
Las variables referenciadas en ABAP son tratadas como cualquier otor objeto de datos elemental. Esto quiere decir que una variale referenciado puede contener una tabla interna o una estructura.
ABAP contiene un tipo de datos predefinido para las referencias, comparable a los tipos de datos para las estructuras o para las tablas internas. El tipo de datos completo no está definido hasta la declaración en el programa ABAP. El tipo de datos de la variable referenciada determina como el programa actúa con su valor, o sea, con la referencia al objeto.
Hay dos tipos principales de referencias, la referencia a clases y la referencia a interfaces, las cuales veremos más adelante en el curso.
Las referecias a clases se definen usando la siguiente adicion:
TYPE REF TO <class>
DATA: v_alv TYPE REF TO cl_gui_alv_grid.
Esta adición se usa en las sentencias TYPES o DATA. Una variable referenciada de este tipo se llama variable referenciada a clase o referencia a clase.
Una referencia a clase permite al usuario crear una instancia, es decir un objeto, de la clase y acceder a un componente visible de la siguiente manera: CREF->COMP
3° Creación de Objetos
Andes de crear un objeto de una clase es necesario declarar una variable referenciada con la referencia a la clase. Una vez que se ha declarado la referencia a la clase, se puede crear el objeto usando la sentencia CREATE OBJECT. Esta sentencia crea una instancia de la clase y la variable referenciada contiene la referencia al objeto.
EJEM:
CLASS counter DEFINITION.
PUBLIC SECTION.
METHODS: ...........
PRIVATE SECTION.
DATA: .........
ENDCLASS.
CLASS counter IMPLEMENTATION
METHOD........
ENDMETHOD.
METHOD....
ENDMETHOD......
ENDCLASS.
4° Cómo acceder a los componentes de un Objeto:
Los programas sólo pueden acceder a los componentes de las instancias usando las referencias de las variables referenciadas. La sintaxis es la siguiente, siendo REF la variable referenciada:
Para acceder al atributo attr; REF->ATTR.
Para llamar al método meth: CALL METHOD REF->METH.
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.
La sintaxis, siendo class la clase es la siguiente:
para acceder al atributo estático attr: CLASS->ATTR.
para llamar al método estatico meth: CALL METHOD CLASS->METH.
Dentro de una clase se puede acceder tambien a los componentes individuales mediante la referencia a sí mismo ME:
para acceder al atributo estático attr: ME>ATTR.
para llamar al método estatico meth: CALL METHOD ME->METH.
5° Asignación de Referencias:
Se pueden asignar referencias a distintas variables referenciadas usando la sentencia MOVE. de esta manera se puede tener las referencias en varias variables referenciadas apuntando al mismo objeto.
Cuando se asigna una referencia a una variable referenciada distinta, sus tipos deben ser compatibles. Cuando se usa la sentencia MOVE o el operador de asignacion = para asignar variables referenciadas, el sistema debe ser capaz de reconocer en el chequeo de la sintaxis si la asignacion va a ser posible. Esto mismo se aplica cuando se pasan variables referenciadas como parametros a procedimientos.
Si escribimos la sentencis cref1 = cref2, las dos referencias tienen que tener el mismo tipo, esto es, tienen que referirse a la misma clase, o bien la clase cref1 tiene que ser la clase predefinida como vacia, o sea object.
La clase object no tiene componentes y tiene la misma funcion para las variables referenciadas que el tipo de datos ANY para las variables normales. Las variables referenciadas con el tipo OBJECT pueden funcionar como contenedoras para pasar referencias. De cualquier manera, nunca pueden ser usadas para acceder a objetos.
6° Mi primer programa de objetos
Vamos a crear nuestro primer programa con orientacion a objetos. El objetivo del programa será simular un contador. Para ello, definimos la clase CONTADOR con los métodos públicos y el atributo privado COUNT.
 
 
 
Sobre el autor
Publicación académica de Matias Giorgieff, en su ámbito de estudios para la Carrera Consultor ABAP.
Matias Giorgieff
Profesión: Programador Jr - Chile - Legajo: RA71X
✒️Autor de: 24 Publicaciones Académicas
🎓Cursando Actualmente: Master Funcional para Consultores ABAP
🎓Egresado de los módulos:
Certificación Académica de Matias Giorgieff