![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP Introducción a la Programación Orientada a Objetos
ABAP Introducción a la Programación Orientada a Objetos
![ABAP Introducción a la Programación Orientada a Objetos ABAP Introducción a la Programación Orientada a Objetos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/65.jpg)
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 especifico, 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 mas populares e incluso muchos de los lenguajes que usamos hoy dia 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 objeto, propiedades, métodos y otros conceptos mas.
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 el. Se pueden usar objetos en programas existentes, de la misma manera que se pueden usar sentencias ABAP convencionales en programas ABAP orientados a objetos.
Los conceptos de orientación a objetos de los Objetos ABAP son esencialmente los mismos de otros lenguajes modernos orientados a objetos como C o JAVA.
Un pequeño numero de conceptos que han probado no ser provechosos en estos lenguajes no se incluyeron en los Objetos ABAP.
Por otro lado los objetos ABAP también tienen elementos muy útiles que el lenguaje C y JAVA no ofrecen.
1era Etapa surge los lenguajes de ensambladores en donde la unidad de programación es la instrucción compuesta de un operador y los operandos, aquí el nivel de abstracción que se aplica es muy bajo.
2da Etapa surgen los lenguajes de programación Foltran ALgol y Cogol en donde los objetos y operaciones del mundo real se podía modelar mediante datos y estructuras de control separadamente, en esta etapa el diseño del software se enfoca sobre la representación del detalle procedimental y en función del lenguaje elegido, conceptos como refinamiento progresivo, modularidad, procedimientos, y programación estructurada son conceptos básicos que se utilizan en esta etapa. Aquí existe una mayor abstracción de los datos.
3era Etapa se introducen los conceptos de Abstracción y ocultación de la información
4ta Etapa a partir de los años 70 se trabaja con una nueva clase de lenguajes de simulación y sobre la contruccion de prototipos tales como Simula 70 y basado en este el lenguaje Smoltoc, en estos lenguajes la abstracción de datos tiene una gran importancia y los problemas del mundo real se representan mediante objetos de datos al cual se añade el correspondiente conjunto de operaciones asociadas a ellos, términos como abstracción de datos, objetos, encapsulacion entre otros son conceptos básicos en la que se fundamenta la programación orientada a o objetos.
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 lo tanto, la representación en un programa de un concepto que 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 provados del objeto, esto es, con datos que son solo 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, solo pueden ser cambiados por los métodos de ese objeto. Asi se garantiza la consistencia interna del objeto.
Clase: Es un conjunto de objetos que tienen la misma estructura y comportamiento.
Cada vez que decimos que algo es alguna cosa, estamos clasificándolo, asociándolo a una clase.
La palabra es lo que conocemos como un concepto, una abstracción.
En la POO una clase no es mas que una serie de código que define a todos los elementos relacionados con ella. Asi, podríamos escribir la clase "AVE" por ejemplo 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.
Asi como también sabemos que las aves tienen también ciertos mecanismos específicos, como comer, dormir, reproducirse etc. Estos mecanismos los llamamos Metodos.
Por ultimo, 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 un clase en particular creado en tiempo de ejecución.
Una clase simboliza la definición de un objeto, pero no es el objeto en si, del modo como una idea no es una cosa física. Asi que para sentarnos necesitamos convertir esa idea en algo, en un objeto real; a ese objeto lo llamamos instancia.
Cada vez que creamos una nueva instancia, esta adquiere atributos, métodos y eventos de la clase 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 actualizaran automáticamente esto nos permite hacer cambios sin tener que ir a cada una de las instancias.
- Al ser independientes de las otras instancias puedo darles valores diferentes sin que afecten a las demás. Aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.
- Sistema de software muy complejos se vuelven mucho mas simples de comprender debido a que la orientación a objetos proporciona una representación mucho mas 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 sistema. Esto reduce significativamente el costo total del mantenimiento necesario.
- A través del polimorfismo y la herencia es posible la reutilizació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 programación orientada a objetos superan a sublimitaciones podemos encontrar algunas características no deseables en estas y son:
- No obstante que la tecnología orientada a objeto no es nueva, un gran porcentaje de los programadores no están familiarizados 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 es claro que en esta se requiere una lógica de pensamiento totalmente diferente a la lógica comúnmente utilizada para la programación estructurada.
- 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 caso en que 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 todo se necesitan, lo que produce que hayan aplicaciones muy grandes que no encaja en dicho sistemas con los que se dispone.
- La velocidad de ejecución, esta relacionada con el punto anterior una aplicación innecesariamente pesada es mas lenta de ejecutar que una aplicación conformada únicamente por los modulos necesarios.
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira