SAP Orientado a objetos ABAP-Objetos y clases
En este tutorial, aprenderemos sobre uno de los principios sobre los que se basa ABAP: La programación Orientada a objetos.
Aprenderemos lo que significa OOP, y también lo que implica en el mundo de SAP ABAP.
¿Qué es OOP?
- La programación orientada a objetos desglosa las tareas en objetos que tienen datos y funciones.
- Este método hace que la programación de software sea comprensible, flexible y reutilizable.
- La programación orientada a objetos (OOP) se creó con simplicidad y elocuencia en mente.
- Hace que las personas se comuniquen con claridad, intercambien información e ideas utilizando un lenguaje común: el lenguaje de los objetos.
- Estos objetos se componen de sus dos características principales: propiedades (datos) y comportamiento (o funciones)
Las principales características de OOP son–
- Abstracción de datos
- Encapsulación
- Énfasis en los datos en lugar del procedimiento
- Uso de entidades del mundo real llamadas «objeto»
- Privacidad y protección de datos
Manténgase actualizado con las últimas tendencias tecnológicas
¡Únase a DataFlair en Telegram!!
POP vs OOP
La programación orientada a procedimientos (POP) aborda los problemas en un método descendente. Enfatiza el procedimiento en lugar de los datos de una manera lineal.
Veamos algunas diferencias entre POP y OOP–
POP | OOP |
POP significa Programación orientada a procedimientos | OOP significa Programación orientada a objetos |
Se centra en el procedimiento (hacer tareas) en lugar de datos (tareas) | Se centra en datos/tareas en lugar de procedimientos |
POP sigue la moda de arriba hacia abajo en la resolución de problemas | OOP sigue la moda de abajo hacia arriba en la resolución de problemas |
Divide un programa en partes más pequeñas llamadas funciones o módulos | Divide un programa en partes más pequeñas llamadas objetos |
Las funciones comparten datos globales y los datos no se pueden ocultar entre sí | Las funciones no comparten datos globales: puede decidir quién puede acceder a sus datos |
No hay mucho énfasis en la protección de datos | Uno de los principales puntos de enfoque en la POO es la protección de datos |
Extender la funcionalidad y agregar datos es tedioso y requiere mucho tiempo | Es muy fácil extender la funcionalidad y agregar nuevos datos, simplemente adición de nuevos objetos |
Los conceptos de herencia, polimorfismo, encapsulación no se utilizan | Los conceptos de herencia, polimorfismo, encapsulación forman la base misma de OOP |
Por ejemplo, C, Pascal, FORTRAN | Por ejemplo, Java, Python, C++ |
OOP en ABAP
- Inicialmente, SAP desarrolló ABAP como un lenguaje POP.
- Sin embargo, a medida que el tiempo avanzaba, lo cambiaron y lo transformaron en un lenguaje OOP
- Por lo tanto, ABAP ahora sigue los principios de la orientación de objetos y paradigmas como objetos.
- Como parte de OOP, ABAP utiliza los conceptos de herencia, sobrecarga, ocultación de datos, etc. para una mejor funcionalidad.
Comencemos por comprender algunos términos básicos de OOP
Términos básicos que debe conocer
TÉRMINO | SIGNIFICADO |
Objeto | una entidad del mundo real que tiene datos y comportamiento |
Clase | una colección compleja de objetos que contienen principalmente campos de datos y características pertenecientes a los datos |
Método | comportamiento de un objeto, p. ej. módulos de funciones que realiza el objeto |
Miembro | el miembro de datos o la función miembro de una clase |
Instancia | sinónimo de objeto, normalmente usado como ‘instancia de una clase’ |
Creación de instancias | creación de un nuevo objeto de una clase |
Objetos en SAP ABAP
- Un objeto es una entidad del mundo real que contiene datos y comportamiento.
- Estas características y comportamiento definen el estado del objeto y las acciones que realizará el objeto.
- Un objeto, como se mencionó anteriormente, es un blueprint o instancia de una clase.
- Para, por ejemplo, un empleado, un libro, un manzano, todos son objetos.
Crear un objeto en ABAP
Veamos cómo crear un objeto en la sintaxis ABAP –
:
DATA: <object_name> TYPE REF TO <class_name>. "Create reference variable CREATE Object: <object_name>. #Create object from ref. var.
Ejemplo:
DATA: dataflairobject TYPE REF TO dataflairclass. CREATE Object: dataflairobject.
Ejemplo de informe:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS ClassDataFlair Definition.Public Section.DATA: dataflairtext(45) VALUE 'Data Flair OOPS tutorial in ABAP: data.'.METHODS: DataFlairMethod.ENDCLASS.CLASS ClassDataFlair Implementation.METHOD DataFlairMethod.Write:/ 'Data Flair OOPS tutorial in ABAP: method.'.ENDMETHOD.ENDCLASS.START-OF-SELECTION.DATA: ClassDataFlair TYPE REF TO ClassDataFlair.CREATE Object: ClassDataFlair.Write:/ ClassDataFlair->dataflairtext.CALL METHOD: ClassDataFlair->DataFlairMethod.
Salida
Tutorial de Data Flair OOPS en ABAP: método.
Clases en SAP ABAP
- Una clase es una colección compleja de objetos
- Contiene miembros de datos (características) y métodos de miembros (funciones) juntos envueltos en una sola entidad llamada objeto
- Las clases son donde se crean y definen los objetos
- También definimos y declaramos módulos de funciones en una clase
- Podemos describir la privacidad de una clase
- Lo que esto significa es, podemos definir quiénes pueden tener acceso a datos particulares de una clase
Crear una clase en ABAP
Crear una clase en ABAP tiene dos pasos –
1. Declaración
Sintaxis–
CLASS <class_name> DEFINITION.//define classENDCLASS.
Ejemplo–
CLASS dataflairclass DEFINITION.//define classENDCLASS.
2. Definición
Sintaxis–
CLASS <class_name> IMPLEMENTATION.//define classENDCLASS.
Ejemplo–
CLASS dataflairclass IMPLEMENTATION.//define classENDCLASS.
Atributos en SAP ABAP
- Los atributos son las características de la clase
- Pueden tener cualquier tipo de datos predefinido como P, F, I, etc.
- Debemos declarar atributos en la sección declaración de clase
- Los atributos son de dos tipos:
- Instancia: esto incluye el estado específico de la instancia del objeto, los cambios son diferentes para todos los objetos, y esto se declara mediante declaración de datos
-
- Estática: esto incluye el estado común de la clase a ser compartido por todas las instancias de la clase, por lo tanto, cuando cambiamos un estado, todos los demás objetos pueden ver el cambio, declarado por la instrucción CLASS-DATA
Métodos en SAP ABAP
- Un método es un módulo o una función
- Es el comportamiento del objeto de una clase
- Un método puede acceder a cualquier característica de una clase
- Contiene acciones que deben realizar los objetos que invocan a la clase
- La definición del método puede contener o no parámetros, que se pasan cuando el método es llamado
- Podemos definir un método usando instrucciones METHOD y ENDMETHOD
Sintaxis:
METHOD…ENDMETHOD
Acceso a atributos y métodos en SAP ABAP
1. Los objetos de la clase
2 pueden acceder a los métodos y atributos. Los especificadores de acceso – público, privado y protegido – funcionan de la misma manera que lo hacen para los especificadores de acceso de clase
- Si los declaramos públicos, se puede acceder a ellos por cualquier clase
- Cuando los declaramos privados, no se puede acceder a ellos por ninguna clase
- Si los declaramos protegidos, solo se puede acceder heredando clases
un ejemplo de cómo escribir clases, atributos y métodos y acceder a ellos –
Ejemplo:
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Data: dataflairtext01 Type char25 Value 'Public Data Flair'. Methods dataflairmethod. PROTECTED Section. Data: dataflairtext02 Type char25 Value 'Protected Data Flair'. PRIVATE Section. Data: dataflairtext03 Type char25 Value 'Private Data Flair'.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'Public Method:', / dataflairtext01, / dataflairtext02, / dataflairtext03. Skip. EndMethod.ENDCLASS.Start-Of-Selection. Data: Objectx Type Ref To dataflairclass. Create Object: Objectx. CALL Method: Objectx->dataflairmethod. Write: / Objectx->dataflairtext01.
Salida
Flair de datos públicos
Flair de datos protegidos
Flair de datos privados Flair de datos públicos
Ejemplo de atributos Estáticos en SAP ABAP
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. CLASS-DATA: dataflairname Type char45, dataflairdata Type I. Methods: dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Do 4 Times. dataflairdata = 1 + dataflairdata. Write: / dataflairdata, dataflairname. EndDo. Skip. EndMethod.ENDCLASS.Start-Of-Selection. dataflairclass=>dataflairname = 'ABAP Object Oriented Programming'. dataflairclass=>dataflairdata = 0. Data: Object1 Type Ref To dataflairclass, Object2 Type Ref To dataflairclass. Create Object: Object1, Object2. CALL Method: Object1->dataflairmethod, Object2->dataflairmethod.
Constructores en SAP ABAP
- Los constructores son tipos especiales de métodos
- Cuando creamos un objeto, necesitamos inicializarlo y los constructores lo hacen el trabajo de inicializar datos para los objetos
- El programa llama a los constructores automáticamente cuando se crea un objeto de la clase
- El constructor activará la operación incluida cada vez que se cree un objeto en ejecución
Ejemplo de Constructores ABAP
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section. Methods: dataflairmethod, constructor.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod. Write: / 'This is the method'. EndMethod. Method constructor. Write: / 'This is the constructor'. EndMethod.ENDCLASS.Start-Of-Selection. Data Object1 Type Ref To dataflairclass. Create Object Object1.
Salida
ME en SAP ABAP
- Siempre que redefinamos una variable dentro de un método con un valor diferente, ese método usará el valor redefinido de la variable
- Sin embargo, si desea acceder al valor declarado originalmente, luego puede usar el operador ME
- Veamos un ejemplo de uso del operador ME
Ejemplo de operador ME en ABAP
REPORT ZR_SS_DATAFLAIR_SAMPLE_001.CLASS dataflairclass Definition. PUBLIC Section.Data dataflairtext Type char25 Value 'Here we have class value'. Methods dataflairmethod.ENDCLASS.CLASS dataflairclass Implementation. Method dataflairmethod.Data dataflairtext Type char25 Value 'Here we have method value'. Write: / ME->dataflairtext, / dataflairtext. ENDMethod.ENDCLASS.Start-Of-Selection. Data objectx Type Ref To dataflairclass. Create Object objectx. CALL Method objectx->dataflairmethod.
Salida
Aquí tenemos valor de método
Resumen
Así, en este tutorial, aprendimos sobre los conceptos básicos sobre los que se basa la programación orientada a objetos ABAP y muchos otros lenguajes. Aprendimos cómo la orientación de objetos es diferente de la orientación de procedimientos, su importancia y los términos más importantes.
En la parte # 2 de este tutorial, profundizaremos en otros conceptos de orientación a objetos como herencia, polimorfismo, etc.