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–

  1. Abstracción de datos
  2. Encapsulación
  3. Énfasis en los datos en lugar del procedimiento
  4. Uso de entidades del mundo real llamadas «objeto»
  5. 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: data.
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

Método público:
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

Este es el operador constructor

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 clase
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.

Leave a Reply

Tu dirección de correo electrónico no será publicada.