
Introducción a la programación orientada a objetos
Programación orientada a objeto (POO):
Es un metodo de desarrollo de software basado en el comportamiento de los objetos en el mundo real. Pero se ha constituido en una de las fomas de programar mas 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.
Como se piensa en la POO?
Pensar en terminos de objeos es muy parecido a como lo hariamos en la vida real. Los programas orientados a objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos tambien son objetos.
Conceptos claves de lla POO
- Objeto: Es unicamente una porción de código fuente que contiene datos y proporciona servicios. 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 contituyen los atributos del objeto. Los servicios que proporciona el objeto se conocen como metodos y se asemejan en su funcionamineto a las funciones.
- Clase: Es un conjunto de objetos que tienen la misma estructura y comportamiento. La palabra es lo que conocemos como un concepto, una abstracción. Las caracteristicas las llamaremos en lenguaje de programadores, atributos, Los mecanismos los llamamos metodos. a los sucesos lo llamaremos eventos.
- Instancia: Es un objeto de una clase en particular creado en tiempo ed ejecución. Para convertir esa idea en algo, en un objeto real: a ese objeto lo llamaremos instancia. Cada vez que creamos una nueva instancia, esta adquiere atributos, metodos 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 instancias de esta clase se actualizarán automaticamente; esto nos permite hacer cambios sin tener que ir a cada una de las instancias.
- Al ser independientes de las otras instancias, puede darles valores diferentes sin que afecten a las demas. Aunque comparten la misma estructura, pueden programarse individualmente, danto versatilidad y flexibilidad al codigo.
Principales ventajas de la orientación a objetos:
- sistmas 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 tecnicas de programación.
- En un sistema correctamente diseñado con orientación a objetos es posible realizar cambios al nivel de clases, sin tener que realizar cambios en ningun otro punto del sistema. Esto reduce significativamente el costo totoal de mantemimiento necesario.
- A traves del polimorfismo y la herencia es posible la reutilización de conoponente 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.