
Las clases locales se definen en un programa ABAP y solo pueden ser invocadas desde el programa en el que se ha definido. Las clases locales o globales solo se diferencian en la creación de si mismas.
Definición de clases locales
Sentencia CLASS … ENDCLASS. La clase cuenta con una parte declarativa CLASS <name> DEFINITION … ENDCLASS. En donde se definen los componentes, y lo que se conoce como implementación CLASS <name> IMPLEMENTATION… ENDCLASS., Example:
La parte declarativa contiene componentes de clase (atributos métodos eventos), cuando se define clases locales la parte declarativa pertenece a los datos globales del programa.
Si declaramos métodos en la clase declarativa, se deberá escribir una parte de su implementación. Esta va incluida en la sentencia de CLASS <name> IMPLEMENTATION…ENDCLASS.
Estructura y componentes de una clase.
La estructura de una clase se define basándose en
Una clase contiene componentes.
Cada componente se asigna a una sección de visibilidad (public,private,protected).
Las clases implementan métodos.
Atributos : Son los campos de datos internos de una clase y pueden tener cualquier tipo de dato ABAP.
Existen 2 tipos de atributos
- Dependientes de instancia: donde el contenido de los atributos es especifico de cada objeto y se declaran usando la sentencia DATA.
- Independiente de instancia o estáticos: donde el contenido de los atributos define el estado de la clase y es valido para todas las instancias de la clase.
Los atributos estáticos existen solo una vez para la clase se declaran usando la sentencia CLASS-DATA. Son accesibles desde todo el entorno de ejecución de la clase. Example:
Los Métodos.
¿Qué son los métodos? : 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 le permite cambiar los valores de un objeto.
Los métodos poseen una interface con parámetros que les permite recibir y retornar valores al invocar después de la llamada, los atributos privados de una clase solo pueden ser cambiados por métodos de la misma clase.
Se utiliza la sentencias METHOD <name> …ENDMETHOD.
Se puede declarar tipos locales y objetos en los métodos de la misma manera que en cualquier procedimiento abap, y los métodos se llaman con la sentencia CALL METHOD.
Existen 3 tipos de métodos.:
- Dependientes de instancia: se declaran usando la sentencia METHODS, pueden acceder a todos los atributos de la clase y pueden desencadenar todos los eventos de una clase.
- Independiente de instancias o estáticos: se declaran usando la sentencia CLASS-METHODS solo puede acceder a atributos estáticos y desencadenar eventos estáticos.
- Especiales: hay 2 metodos especiales llamados constructor y class_constructor que son automáticamente llamados cuando se crea un objeto(contructor) o cuando se accede por primera vez a los componentes de la clase (class_contructor).
LOS EVENTOS.
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.
Existen 2 tipos de eventos :
- Dependientes de instancia: se declara con la sentencia EVENTS solo pueden ser desencadenados en un método dependiente de la instancia.
- Independientes de instancia o estáticos: se declaran con la sentencia CLASS-EVENTS todos los métodos pueden desencadenar eventos estáticos. Los eventos estáticos son el único tipo de eventos que pueden ser desencadenado por un método estático.
Los tipos y las constantes.
Se pueden definir tipos de datos ABAP dentro de una clase con la sentencia TYPES ,las constantes son un tipo especial de atributos estáticos , su valor se fija cuando son declaradas y no pueden ser cambiado, se declaran usando la sentencia CONSTANTS existen solo una vez para todos los objetos de la clase.
Visibilidad de una clase.
Se define a través de tres áreas distintas:
- PUBLIC SECTION: son accesibles para todos los usuarios / métodos de la clase y cualquera que herede de ella , los componentes públicos conforman la interface entre la clase y el usuario.
- PROTECTED SECTION: son accesibles para todos los métodos de una clase y heredaciones de clases , los componentes protegidos conforman la interface entre una clase y todas las subclases.
- PRIVATE SECTION: solo son accesibles en los métodos de la misma clase , no forman parte de la interface externa de la clase.