✒️ABAP POO / Las Clases Por Jeferson Pena Curvelo
ABAP Las Clases

Las Clases en ABAP se pueden declarar global o localmente. Las clases globales se definen en el generador de clases, a traves de la transaccion SE24 en el ABAP Workbench.
Se utilizara el Generador de clases correspondiente a la transaccion estandar SE24 para la administracion de las clases e interfases definidas en el sistema SAP
Estas clases son almacenadas en el Class Polls en la libreria de clases en el Repositorio R/3. Todos los programas ABAP en un sistema SAP pueden acceder a las clases globales.
Las clases locales se definen en un programa ABAP y solo pueden ser invocadas desde el programa en el que se han definido.
Cuando se usa una clase en un programa ABAP el sistema busca primero una clase local con el nombre especificado. Si no envuentra ninguna entonces busca una clase global.
A parte de la cuestion de la visibilidad, no hay ninguna diferencia entre usar una clase global o una clase local. Lo que si cambia sensiblemente es la manera en la que una clase local y una clase global son creadas.
Si se define una clase que se va a usar en un unico programa, normalmente es suficiente con definir los componentes visibles de manera que la clase se ajuste a nuestro programa. Por otro lado, las clases globales deben estar preparadas para ser usadas en cualquier parte.
Clases Locales: son el conjunto de sentencias que estan entre las sentencias CLASS...ENDCLASS.
Una definicion completa de una clase constará de una parte declarativa, lo que se conoce como definicion de la clase, en la que se definen los componentes, y una parte de implementacion, lo que se conoce como implementacion de la clase, en la que se implementan estos componentes.
La parte declarativa o definicion de una clase esta comprometida entre las sentencias
CLASS <class> DEFINITION,
...
ENDCLASS.
La parte declarativa contiene la declaracion de todos los componentes de la clase (atributos, métodos y eventos). Cuando se definen clases, la parte declarativa pertenece a los datos globales del programa, por tanto se habrá de situar al principio del programa.
Si se declaran metodos en la parte declarativa de una clase, se debera escribir tambien su parte de implemtnacion. Esta es la que va incluida en las siguientes sentencias.
CLASS <class> IMPLEMENTATION.
....
ENDCLASS.
La parte de implementacion continee la implementacion de todos los metodos de la clase. Esta parte actua como un bloque, esto quiere decir que cualquier seccion de codigo que no forme parte del bloque no sera accesible.
Visibilidad de una clase: La parte declarativa o definicion de una clase se define en tres areas de distinta visibilidad:
CLASS <class> DEFINITION.
PUBLIC SECTION.
...
PROTECTED SECTION.
....
PRIVATE SECTION.
...
ENDCLASS.
Estas tres areas definen la visibilidad externa de los componentes de la clase, esto es, la interface entre la clase y el usuario.
Cada componente de una clase ha de ser asignado a una de estas tres secciones:
Public Section (Parte Publica): Todos los componentes declarados en la seccion publica son accesibles para todos lo susuarios de la clase y para todos los metodos de la clase y de cualquier clase que herede de ella. Los componentes publicos conforman la interface entre la clase y el usuario.
Protected Section (Parte Protegida): Todos los componentes delclarados en la seccion protegida son accesibles para todos los metodos de la clase y de las clases que heredan de ella. Los componentes protegidos conforman la interface entre una clase y todas sus subclases.
Privete Section (Parte Privada): Los componentes declarados en la seccion privada solo son visibles en los metodos de la misma clase. Los componentes privados no forman parte de la interface externa de la clase.
Los atributos de una clase a la que un usuario externo puede acceder directamente son los Atributos Publicos. Los componentes publicos de una clase comunmente se conoce como Interfase de la clase. a la seccion de visibilidad privada se conoce comunmente como la ocultacion de la informacion o encapsulacion. En parte esto es para proteger a un usuario de una clase ya que se supone que los componentes privados de una clase se modificaran en algun momento pero su interfase sera siempre la misma. Todos los usuario externos solo pueden acceder a sus componentes a traves de la interfaz clase por lo que se continuara trabajando con la clase como de costumbre despues de realizado el cambio, el usuario no se dara cuenta del cambio ya que solo la implementacion interna fue modificada. Por el contrario si los componentes publicos de una clase son modificado de manera incompatible cada usuario externo debera tener en cuenta estos cambios. Por lo tanto en conclusion se debe utilizar los atributos publicos de una clase con mucha moderacion o bien evitar modificar los componentes publicos de nuestras clases
Estructura y los Componentes de una clase.
La estructura de una clase se define principalmente basandose en:
-Una clase tiene Componentes
-Cada componente se asigna a una seccion de visibilidad (Publico, protegido o privado).
-Las clases implementan metodos.
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. Todos los componentes de una cclase son visibles dentro de la clase. Ademas todos comparten el mismo espacio por lo que sus nombres deben ser unicos dentro 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 solo una vez para la clase entera, independientemente del numero de instancias. Estos componentes son conocidos como dependientes de instancia o independientes de instancias (o estaticos) respectivamente.
En los objetos ABAP, las clases pueden definir los siguientes componentes:
-Atributos
-Metodos
-Eventos
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP Orientado a Objetos.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























