✒️ABAP La definición de Clases, Atributos, Métodos y Eventos
ABAP La definición de Clases, Atributos, Métodos y Eventos
DEFINICION DE CLASES, ATRIBUTOS, METODOS Y EVENTOS
CLASES LOCALES Y GLOBALES. Las clases globales se definen en el generador de clases a través de la transacción SE24 en el ABAP Workbench
Transaccion SE24. Utilizaremos el "Generador de clases" de esta transaccion administración de las clases e interfases definidas en el sistema SAP
Estas clases son almacenadas en el Class Pools en la librería de clases en el Repositorio R/3. Todos los programas ABAP en un sistema R/3 pueden acceder a las clases globales
Cuando se usa una clase en un programa ABAP el sistema busca primero una clase local con el nombre especificado. Si no encuentra ninguna entonces busca una clase global
DEFINICION DE CLASES LOCALES. son el conjunto de sentencias que están entre las sentencias
CLASS...ENDCLASS
La parte declarativa o definición de una clase está comprendida entre las sentencias:
CLASS<CLASS>DEFINITION.
...
ENDCLASS.
En un ejemplo: Cuando se definen clases locales, la parte declarativa pertenece a los datos globales del programa, por tanto se habrá de situar al principio del programa.
Si se declaran métodos en la parte declarativa de una clase, se deberá escribir también su parte de implementación. Sentencias:
CLASS<CLASS>IMPLEMENTATION.
...
ENDCLASS.
ESTRUCTURA Y COMPONENTES DE UNA CLASE, basandose en:
- Una clase contiene componentes
- Cada componente se asigna a una sección de visibilidad (público, protegido o privado)
- Las clases implementan métodos
Los componentes de una clase representan sus contenidos. Todos los componentes son declarados en la parte declarativa de la clase. Los componentes definen los atributos de los objetos en una clase
Cuando se define una clase, cada componente es asignado a una de las tres distintas secciones de visibilidad que definen la interface externa de la clase
Hay dos tipos de componentes en una clase, aquellos que existen separadamente para cada objeto de una clase, y aquellos que existen sólo una vez para la clase entera, independientemente del número de instancias
EN OBJETOS ABAP, LAS CLASES DEFINEN LOS SIGUIENTES COMPONENTES:
- Atributos. Son los campos de datos internos de una clase y pueden tener cualquier tipo de datos ABAP
Existen dos tipos de atributos:
- Dependientes de instancia: donde el contenido de los atributos es específico de cada objeto. Se declaran usando la sentencia DATA
- Independientes de instancia o estáticos: donde el contenido de los atributos define el estado de la clase y es válido para todas las instancias de la clase
NOTA: Los atributos estáticos existen sólo una vez para la clase. Se declaran usando la sentencia CLASSDATA. Son accesibles desde todo el entorno de ejecución de la clase.
- Metodos. Son procedimientos internos de una clase que definen el comportamiento de un objeto
Los métodos pueden acceder a todos los atributos de una clase. Esto les permite cambiar el contenido de los atributos de un objeto. Tambien poseen una interface con parametros que permite recibir valores cuando son invocados y delvolverlos despues
La definición y la interface de un método son similares a las de los módulos de funciones. Un método se define en la parte declarativa de la clase y se implementa en la parte de implementación usando las sentencias:
METHOD<METH>.
...
ENDMETHOD.
NOTA: Los métodos se llaman mediante la sentencia CALL METHOD
TIPOS DE METODOS
- Dependientes de instancia: estos métodos se declaran usando la sentencia METHODS.
- Independientes de instancia o estáticos: estos métodos se declaran usando la sentencia CLASSMETHODS.
- Especiales: además de los métodos normales que se pueden llamar con la sentencia CALL METHOD, hay dos métodos especiales llamados CONSTRUCTOR y CLASS_CONSTRUCTOR que son automáticamente llamados cuando se crea un objeto (CONSTRUCTOR) o cuando se accede por primera vez a los componentes de la clase (CLASS_CONSTRUCTOR)
- Eventos. Son acontecimientos o sucesos que utilizan los objetos o las clases para desencadenar la ejecución de un método en otro objeto o clase
Estos métodos se llaman métodos que manejan eventos (event handler methods).
La unión entre el disparador del evento "trigger" y el manejador del evento "handler" no es establecida de antemano, si no en el entorno de ejecución. En las llamadas normales a métodos, el programa que llama determina los métodos quiere llamar. Estos métodos tienen que existir.
Los eventos de una clase pueden ser desencadenados en los métodos de la misma clase usando la sentencia RAISE EVENT
Un metodo de la misma o de diferente clase, se declara como método manejador de eventos utilizando la adición FOR EVENTOF
El vínculo de unión entre el disparador y el manejador (trigger y handler) es establecido dinámicamente en el programa usando la sentencia SET HANDLER.
TIPOS DE EVENTOS:
- Dependientes de instancia: se declaran con la sentencia EVENTS.
- Independientes de instancia o estáticos: se declaran con la sentencia CLASSEVENTS.
TIPOS Y CONSTANTES
Se definen los tipos de datos ABAP de una clase con TYPE.
Los tipos de datos no son específicos de cada instancia y existen una sola vez para todos los objetos de la clase
Las constantes son un tipo especial de atributos estáticos. Se declaran usando la sentencia CONSTANTS. Las constantes existen sólo una vez para todos los objetos de la clase
Cuando definimos tipos de datos dentro de la definición de una clase podemos utilizar la adición READ ONLY luego de escribir el tipo de la variable que acabamos de declarar. Esto significará que el atributo público que fue declarado con la sentencia DATA puede ser leído desde afuera de la clase pero solo podrá ser modificado por métodos de la misma clase, vale la pena aclarar que solo se podrá utilizar la adición READ ONLY dentro de la parte pública de la declaración de una clase.
VISIBILIDAD DE UNA CLASE
La parte declarativa o definición de una clase se divide en tres áreas de distinta visibilidad:
CLASS<CLASS>DEFINITION.
PUBLIC SECTION.
...
PROTECTED SECTION.
...
PRIVATE SECTION.
...
ENDCLASS.
Los componentes de una clase se deben asignar a estas secciones:
- PUBLIC SECTION (Parte Pública): todos los componentes declarados en la sección pública son accesibles para todos los usuarios de la clase y para todos los métodos de la clase y de cualquier clase que herede de ella.
- PROTECTED SECTION (Parte Protegida): todos los componentes declarados en la sección protegida son accesibles para todos los métodos de la clase y de las clases que heredan de ella.
- PRIVATE SECTION (Parte Privada): los componentes declarados en la sección privada son sólo visibles en los métodos de la misma clase
Los atributos de una clase a los que un usuario externo puede acceder directamente son los atributos públicos. Los componentes públicos de una clase comúnmente se conocen como la interface de la clase. A la sección de visibilidad privada también se le conoce comúnmente como la ocultación de información o encapsulación, en parte esto es para proteger al usuario de una clase ya que se supone que los componentes privados de una clase se modificarán en algún momento, pero su interface será siempre la misma. Todos los usuarios externos sólo pueden acceder a sus componentes a través de la interface de la clase por lo que se continuará trabajando con la clase como de costumbre después de realizar el cambio el usuario no se dará cuenta de cambio ya que solo la implementación interna fue modificada por el contrario si los componentes públicos de una clase son modificados de manera incompatibles, cada usuario externo tendría que tomar en cuenta estos cambios por lo tanto en conclusión debemos utilizar los atributos públicos de una clase con mucha moderación o bien evitar modificar los componentes públicos de nuestras clases.
 
 
 
Sobre el autor
Publicación académica de Ixhel Magai Lopez Valencia, en su ámbito de estudios para la Carrera Consultor ABAP.
Ixhel Magai Lopez Valencia
Mexico - Legajo: PM62E
✒️Autor de: 134 Publicaciones Académicas
🎓Egresado de los módulos:
- Máster ABAP for HANA
- Máster ABAP Orientado a Objetos
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: PartTime
Presentación:
Soy ingeniera en telematica, estoy interesada en aprender programacion en sap, solo tengo conocimientos basicos en java
Certificación Académica de Ixhel Lopez