![](/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/399.jpg)
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS.
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 tecnologia, sino una forma de programar, una manera de plantearse la programación.
No es la unica ( 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 estan diseñados bajo ese modelo.
Con la POO tenemos que aprender a pensar las cosas de una manera distinta, para escribir nuestros programas en terminos de objetos, propiedades, metodos 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 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.
Sabias que los conceptos de orientación a objetos de los objetos abap son esencialmente los mismos de otros lenguajes modernos orientados a objetos tales como C o JAVA.
Un pequeño número de conecptos que han probado no ser provechosos en estos lenguajes no se incluyeron en los objetos ABAP. por otro lado, los objetos abap tambien tiene elementos muy utilies del lenguaje que C y Java no ofrecen.
2. ¿Cómo se piensa en la POO?
Pensar en terminos de objetos es muy parecido a como lo hariamos en la vida real. por ejemplo vamos a pensar en un coche para tratar de modelizarlo en un esquema de POO. diriamos que el coche es el elemento principal que tiene una serie de caracteristicas, como podrian ser el color, el modelo o la marca. ademas tiene una serie de funcionalidades asociadas, como pueden ser ponerse en marcha o parar.
Es un esquema POO el coche seria el objeto, las propiedades serian las caracteristicas como el color o el modelo y los metodos serian las funcionalidades asociadas como ponerse en marcha o parar.
Por poner otro ejemplo vamos a ver como modelizriamos en un esquema POO una fraccion, es decir, esa estructura matematica que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2.
La fraccion sera el objeto y tendra dos propiedades, el numerador y el denominador. luego podria tener varios metodos como simplificarse, sumarse con otra fraccion o numero, restarse con otra fraccion, etc.
Estos objetos se podran utilizar en los programas, por ejemplo en un programa de matematicas haras uso de objetos fraccion y en un programa que gestion de un taller de coches utilizaras objetos coche.
Los programas orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos tambien son objetos. es decir, el taller de coches sera un objeto que utilizara objetos coche, herramienta, mecanico, recambios. etc.
3. Conceptos claves de la POO
Objeto: es unicamente 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 farmaceutica, 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 metodos y se asemejan en su funcionamiento a las funciones. normalmente los metodos operan con los datos privados del objeto, esto es, con datos que son solo visibles para los metodos 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 metodos de ese objeto. asi 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 caracteristicas especificas, se comporta de una forma concreta.
No es mas que una palabra, pero nos permite clasificar las cosas. por ejemplo, sabemos que una gallina es un ave y que un perro no es una ve.
la clasificacion es algo que hacemos todos los dias, a cada momento. cada vez que decimos que algo es alguna cosa, estamos clasificandolo, asociandolo a una clase.
sin embargo, sabemos que la palabra ave no se refiere a u animal concreto, sino a una serie de animales. ave es la palabra que usamos para identificarlos en un grupo pero no podemos decir hoy hare 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 abstraccion.
En la POO una clase no es mas que una serie de código que define a todos los elementos relacionados con ella. asi, podriamos escribir la clase ave colocando en ella todas las caracteristicas que tiene las aves(pico, color, alto, ancho, patas,..) esas caracteristicas las llamaremos en lenguaje de programadores, atributos.
Pero la cosa no termina alli, resulta que las aves tiene tambien ciertos mecanismos especificos, como comer, dormir, reproducirse, etc. estos mecanismos los llamamos metodos.
Por ultimo, tambien sabemos que las aves reaccionan ante ciertos sucesos, como peligro, atraccion, defensa a esto lo llamaremos eventos.
Instancia: es un objeto de una clase en partiular 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 fisica.
asii que para sentarnos necesitaremos 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, meteodos 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 algun cambio en la clase, todas las intancias de esta clase se actualizaran automaticamente; estos 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 demas. aunque comparten la misma estructura, pueden programarse individualmente, dando versatilidad y flexibilidad al código.
4. principales ventajas de la orientación a objetos
las principales ventajas de la programación orientada a objetos son:
- 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 correctaente diseñado con orientación a objetos es posible realizar cambios al nivel de las 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 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.
 
 
 
Sobre el autor
Publicación académica de Natalia Alejandra Garcia Milla, en su ámbito de estudios para la Carrera Consultor ABAP.
Natalia Alejandra Garcia Milla
Profesión: Ingeniero en Informática - Chile - Legajo: ZE97A
✒️Autor de: 41 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime