✒️ABAP Introducción a la Programación Orientada a Objetos
ABAP Introducción a la Programación Orientada a Objetos
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS
Programación Orientada a Objetos (POO) es un método de desarrollo de software basado en el comportamiento de los objetos en el mundo real.
La POO es lo que se conoce como un paradigma o modelo de programación. Esto significa que no es un lenguaje específico, o una tecnología, sino una forma de programar, una manera de plantearse la programación.
No es la única (o necesariamente mejor o peor que otras), pero se ha constituido en una de las formas de programar más populares e incluso muchos de los lenguajes que usamos hoy día lo soportan o están diseñados bajo ese modelo.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en términos de objetos, propiedades, métodos y otros conceptos más.
Los Objetos ABAP son un conjunto de sentencias orientadas a objetos que han sido introducidas dentro del lenguaje ABAP a partir de la versión 4.0. Esta extensión se basa en el lenguaje ya existente, siendo compatible con él. Se pueden usar objetos en programas existentes, de la misma manera que se pueden usar sentencias ABAP convencionales en programas ABAP orientados a objetos.
¿CÓMO SE PIENSA EN LA POO?
Pensar en términos de objetos es muy parecido a cómo haríamos en la vida real. Por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema POO. Diríamos que el coche es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha o parar.
En un esquema POO el coche sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver cómo modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.
La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.
Estos objetos se podrán utilizar en los programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestión de un taller de coches utilizarás objetos coche.
Los programas orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de coches será un objeto que utilizará objetos coche, herramienta, mecánico, recambios, etc.
LOS CONCEPTOS CLAVES DE LA POO
OBJETO es únicamente una porción de código fuente que contiene datos y proporciona servicios.
Los objetos en programación se usan para modelar objetos o entidades del mundo real (el objeto hijo, madre, o farmacéutica, por ejemplo). Un objeto es, por tanto, la representación en un programa de un concepto y contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.
Los datos constituyen los atributos del objeto. Los servicios que proporciona el objeto se conocen como métodos y se asemejan en su funcionamiento a las funciones. Normalmente los métodos operan con los datos privados del objeto, esto es, con datos que son sólo visibles para los métodos del objeto.
De esta manera, los atributos de un objeto no pueden ser cambiados directamente por el usuario del objeto, sólo pueden ser cambiados por los métodos de ese objeto. Así se garantiza la consistencia interna del objeto.
CLASE es un conjunto de objetos que tienen la misma estructura y comportamiento.
Cuando decimos "ave", sabemos que nos referimos a "algo" con plumas, pico, dos patas, etc. No importa realmente si hemos visto un ave o no, o si tenemos un ave frente a nosotros; entendemos claramente que la palabra "ave" se refiere a alguna cosa que cumple con características específicas, se comporta de una forma concreta, etc.
No es más que una palabra, pero nos permite clasificar las cosas. Por ejemplo, sabemos que una gallina es un ave y que un perro no es un ave.
La clasificación es algo que hacemos todos los días, a cada momento ( entre otras cosas, nos libra de utilizar medias como guantes o bañarnos en el comedor en vez de en la ducha). Cada vez que decimos que algo es alguna cosa, estamos clasificándolo, asociándolo a una clase.
Sin embargo, sabemos que la palabra ave no se refiere a un animal concreto, sino a una serie de animales. Ave es la palabra que usamos para identificarlos en un grupo, pero no podemos decir hoy haré volar la palabra "ave", en tal caso siempre nos referiremos a esta o aquella ave, siempre hablaremos de un animal concreto. La palabra es lo que conocemos como un concepto, una abstracción.
En la POO una clase no es más que una serie de código que define a todos los elementos relacionados con ella. Así, podríamos escribir la clase ave colocando en ella todas las características que tienen las aves (pico, color, alto, ancho,patas) esas características las llamaremos en lenguaje de programadores, atributos.
Pero la cosa no termina allí, resulta que las aves tienen también ciertos mecanismos específicos, como comer, dormir, reproducirse,etc. Estos mecanismos los llamamos métodos.
Por último, también sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atracción, defensa ... a esto lo llamaremos Eventos.
INSTANCIA Es un objeto de una clase en particular creada en tiempo de ejecución.
Una clase simboliza la definición de un objeto, pero no es el objeto en sí, del modo como una idea no es una cosa física.
Así que para sentarnos necesitaremos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instacia.
Cada vez que creamos una nueva instancia, ésta adquiere atributos, métodos y eventos de la case a la que pertenece, sin embargo, cada instancia es independiente de las otras; esto nos da dos ventajas:
- Si hago algún cambio en la clase, todas las instancias de esta clase se actualizarán automáticamente; esto nos permite hacer cambios sin tener que ir a cada una de la instancias.
- Al ser independientes de las otras instancias, puedo darles valores diferentes sin que afecten a los demás (como tener una silla negra, una roja, una mas alta, etc) Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.
LAS PRINCIPALES VENTAJAS DE LA POO
- Sistemas de software muy complejos se vuelven mucho más simples de comprender debido a que la orientación a objetos proporciona una representación mucho más cercana a la realidad que otras técnicas de programación.
- En un sistema correctamente diseñado con orientación a objetos es posible realizar cambios al nivel de la clases, sin tener que realizar cambios en ningún otro punto del sistema. Esto reduce significativamente el costo total del mantenimiento necesario.
- A través del polimorfismo y la herencia es posible la reutilzación de componentes individuales.
- La cantidad de trabajo en revisión y mantenimiento del sistema se reduce debido a que muchos problemas pueden ser detectados y corregidos en la fase de diseño.
- Facilita el trabajo en equipo debido a que varios desarrolladores pueden trabajar en distintos componentes de un mismo desarrollo.
A pesar que las ventajas de la POO superan a sus limitaciones, podemos encontrar algunas características no deseadas en estas. Algunas de ellas son:
- Las limitaciones para el programador, no obstante que la tecnología orientada a objetos no es nueva, un gran porcentaje de los programadores no están familiriazados con los conceptos de dicha tecnología, en otras palabras, la lógica de la programación estructurada sigue siendo predominante en la mayoría de los desarrolladores de software. Después de haber revisado en forma breve los principios de la POO, nos es claro, que en ésta se requiere una lógica de pensamiento totalmente diferente a la lógica comúnmente utilizada para la programación estructurada.
- Por otro lado tenemos el tamaño excesivo en las aplicaciones resultantes. La gran mayoría de los equipos de computo cuentan con capacidades tanto de almacenamiento como de memoria lo suficientemente buena como para ejecutar la mayoría de las aplicaciones que puedan desarrollarse con la tecnología orientada a objetos, sin embargo, existen casos en los cuales lo anterior no se cumple.
- Cuando se heredan clases, a partir de clases existentes se heredan de forma implícita todos los miembros de dicha clase, aun cuando no todos se necesitan. Lo que produce que haya aplicaciones muy grandes que no siempre encajan en los sistemas con los que se dispone.
- La velocidad de ejecución, esto tiene que ver con el punto anterior, ya que una aplicación innecesariamente pesada en muchas ocasiones es más lenta de ejecutar que una aplicación conformada únicamente por los módulos necesarios.
 
 
 
Sobre el autor
Publicación académica de Ducelvis Lolimar Arcia Cova, en su ámbito de estudios para la Carrera Consultor ABAP.
Ducelvis Lolimar Arcia Cova
Profesión: Tsu Relaciones Industriales (rrii) - Argentina - Legajo: WX74T
✒️Autor de: 125 Publicaciones Académicas
🎓Egresado de los módulos:
- Carrera Consultor en SAP FI Nivel Inicial
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
Presentación:
Mi principal objetivo al comenzar esta gran experiencia educativa en programación abap es adquirir los conocimientos y competencias necesarias para incorporarme en el ámbito laboral en esta área.
Certificación Académica de Ducelvis Arcia