
Clases
- Dos tipos de clases, globales (Tx SE24) y locales
Clases locales
- Definición: CLASS <class_name> DEFINITION ............. ENDCLASS.
- Implementación: CLASS <class_name> IMPLEMENTATION ............. ENDCLASS.
- Puede contar de:
- Atributos
- Métodos
- Eventos
- Tiene tres tipos de visibilidad (de más restrictiva a menos):
- Privada
- Protegida
- Pública
Atributos
- Son los campos de datos internos de una clase y pueden ser de cualquier tipo de datos ABAP.
- Tipos de atributos
- Dependientes de instancia
a) el contenido es único para cada objeto (instancia) de la misma clase
b) se declaran usando sentencias DATA.
2. Independientes de instancia o estáticos
a) el contenido define el estado de la clase y es válido para todas las instancias de la clase
b) se declaran usando la sentencia CLASS-DATA
- Se declaran en la sección privada
- Si se declaran en la sección public, se tienen que declarar como READ-ONLY
Métodos
- Procedimientos internos de una clase que definen el comportamiento de un objeto
- Se definen con METHODS <method_name>
- Se implementan con METHOD <method_name> ............. <ENDMETHOD>
- Se llaman con CALL METHOD <method_name>
- Tipos de métodos
- Dependientes de instancia
a) se declaran con METHODS
b) pueden acceder a todos los atributos
c) pueden desencadenar todos los eventos
2. Independientes de instancia o estáticos
a) se declaran con CLASS-METHODS
b) sólo pueden acceder a los atributos estáticos
c) sólo pueden desencadenar eventos estáticos
3. Especiales
a) CONSTRUCTOR : cuando se crea el objeto
b) CLASS-CONSTRUCTOR : cuando se accede pro primera vez a la clase
c) no existen destructores
Eventos
- Son usados por los objetos o clases para desencadenar la ejecución de un método en otro objeto o clase.
- Para desencadenarlos: RAISE EVENT
- Para declararlos: FOR EVENT OF
- Para unir disparador y manejador : SET HANDLES
- Tipos de eventos:
- Dependientes de instancia: se declaran con EVENTS
- Independientes de instancia o estáticos: se declaran con CLASS-EVENTS
Visibilidad de una clase
- PUBLIC SECTION: accesibles por todos. Es la interfaz de la clase y el usuario
- PROTECTED SECTION: accesibles sólo por la clase y sus herederos. Es la interfaz de la clase y sus subclases
- PRIVATE SECTION: sólo accesibles para la misma clase. Encapsulación de la clase.