Ingeniera Informtica Politcnico Jaime Isaza Cadavid www.politecnicojic.edu.co Especialista en Desarrollo de Software Universidad EAFIT www.eafit.edu.co Programacin Antes de intentar aprender algo ten presente lo complejo, alguna vez fue simple, entiende lo simple. El problema est en la tcnica, no en la herramienta Si no eres nuevo en esto de programar, pero an no entiendes la orientacin a objetos deshazte de vicios y empieza nuevamente! Listo? Que es la orientacin a objetos? La orientacin a objetos es un paradigma de programacin Tpico! Si bien esta definicin es correcta, el problema est, en que tanto lo comprendemos A ttulo personal La orientacin a objetos es simplemente una forma de ver las cosas, o bien es una forma de entender un problema identificando las entidades principales que se encuentran en el.. La programacin orientada a objetos (POO) es por tanto una forma de desarrollar un sistema, pensando en las entidades principales del problema que dicho sistema pretende resolver El lenguaje de programacin es la herramienta para resolver el problema El propsito de la POO no tiene que ver con el lenguaje de programacin El propsito de la programacin orientada a objetos consiste en proporcionar una solucin informtica identificando los conceptos relevantes presentes en el problema Identificar los conceptos relevantes o las entidades involucradas en un problema significa reconocer las caractersticas de estos y las acciones que realizan o bien que producen algn efecto sobre ellos Con respecto a los lenguajes de programacin podemos decir que cada uno usa la herramienta en que ms hbil se considere, el problema finalmente no cambia De acuerdo a la situacin con una u otra herramienta se nos hace ms o menos difcil y de acuerdo al escenario se debe elegir una u otra herramienta de trabajo Veamos algunos conceptos clave Qu es un Objeto? Cualquier Cosa Un Objetoes En serio! Cualquier Cosa Cualquier Cosa de la que puedas emitir un concepto Cualquier Cosa, todo es un objeto Es decir el mundo est lleno de objetos reales, los cuales se pueden representar como tales en una solucin computarizada. Este es un objeto es un automvil de plstico, rojo con 4 llantas y 2 puertas Veamos Si realizramos el proceso mental lentamente, nos daramos cuenta de que al ver el objeto emitimos un concepto preconcebido es decir automvil En la imagen cada uno de los elementos que vemos es considerado un objeto Sin embargo de todos ellos podemos emitir un concepto conocido y para ello usamos la palabra globo A ese concepto conocidoque representa una agrupacin de objetos lo llamamos Clase Una clase es como un molde de galletas este determina la forma y caractersticas que la galleta (el objeto) va a tener, sin ser el objeto real El molde (la clase) no determina por ejemplo, que sabor tiene cada una de las galletas tampoco por cuanta cantidad de ingredientes estar compuesta. La clase es una los objetos son todos los que podamos crear mentalmente a partir de dicha clase o concepto Hagamos un ejercicio, el tpico el concepto que elegiremos es la clase persona Este grupo de personas tiene un conjunto de caractersticas y comportamientos en comn Caractersticas Nombre Edad Color de Piel Profesin Estado Civil Comportamientos Hablar Caminar Mirar Nacer Morir Un objeto de la clase persona sera Caractersticas Nombre: Sandra Edad: 22 Color de Piel: Morena Profesin: Deportista Estado Civil: Soltera Comportamientos Hablar Caminar Mirar Nacer Morir Otro objeto de la clase persona sera Caractersticas Nombre: Carlos Edad: 28 Color de Piel: Blanco Profesin: Abogado Estado Civil: Casado Comportamientos Hablar Caminar Mirar Nacer Morir Ya vamos entendiendo Una clase esta compuesta por caractersticas (atributos o propiedades) y por comportamientos (acciones o mtodos) Las caractersticas y comportamientos de una clase son determinadas por el contexto del problema o escenario Esto en programacin quiere decir, que dentro de un sistema, solo implementamos los atributos y mtodos relacionados con el mbito del problema que estamos solucionando. Veamos algunos conceptos adicionales A los valores que tienen los atributos de un objeto se les conoce como el estadodel objeto, y a los atributos y mtodos que ofrece se les conoce como la interfaz al cdigo usado para construir las clases se le conoce como la implementacin de la clase. Interfaz 1. f. Inform. Conexin fsica y funcional entre dos aparatos o sistemas independientes. Los objetos se comunicanse comunican con otros a travs de mensajes Un mensaje es una comunicacin dirigida a un objeto, que le ordena que ejecute uno de sus mtodos con ciertos parmetros asociados al evento que lo gener. Wikipedia Los objetos tienen diferentes tipos de relaciones Asociacin Agregacin/Composicin Ahora veamos conceptos avanzados la modularidad y la reusabilidad Qu son? Los principios que dirigen la orientacin a objetos son En trminos simples la modularidad significa trabajar por partes Y la reusabilidad significa No se invente la rueda! Lo que ya esta hecho es para usarse y algunas de las cosas que no estn hechas, deben construirse pensando en que alguien necesitar usarlo alguna vez Con respecto a la comunicacin tenemos ms principios alta cohesin y el bajo acoplamiento que tan claros los tenemos?. Cuando decimos que un componente tiene una alta cohesin hablamos de que todos los elementos dentro de el estn estrechamente relacionados el criterio de relacin debe ser de negocio o tcnico y no subjetivo Cuando decimos que un componente tiene una bajo acoplamiento hablamos del nivel de independencia que tiene un componente con respecto a otros Caractersticas de la Orientacin a Objetos Abstraccin Encapsulamiento Herencia Polimorfismo