1. Definir con sus propias palabras la programación orientada a objetos según los conceptos y características discutidas. 2. Identificar elementos básicos de la programación orientada a objetos en la vida cotidiana, con un margen de precisión. Objeto y Abstracción de Datos MSc Orlando Sevilla 1. Repaso del concepto de algoritmo. 2. Definición de programación. 3. Definición de paradigma. 4. Tipos de paradigma. 5. Definición de programación orientada a objetos. Objeto y Abstracción de Datos MSc Orlando Sevilla Lista bien definida, ordenada y finita de instrucciones Objeto y Abstracción de Datos Solución a un problema Pasos sucesivos y bien definidos Debe ser flexible a cambios Debe contemplar las posibles visiones del problema que a resolver MSc Orlando Sevilla •Llegar a sus objetivos planteados utilizando la menor cantidad de recursos posibles. •El análisis de resolución del problema se lo realiza prioritariamente. •Determina como hace el programa la tarea solicitada •Divide y vencerás •Diseño modular o descendente •Programa principal (el módulo de nivel más alto) que llama a subprogramas (módulos) de nivel mas bajo, que a su vez pueden llamar a otros subprogramas •El diseño es independiente del lenguaje de programación en el que se vaya a codificar Objeto y Abstracción de Datos MSc Orlando Sevilla • Escritura en un lenguaje de programación de la representación de un algoritmo. Dado que el diseño del algoritmo es independiente del lenguaje de programación utilizado en su implementación • El código puede ser escrito con igual facilidad en un lenguaje o en otro. • El programa fuente debe ser traducido a lenguaje máquina. Este proceso se realiza con el compilador y el sistema operativo que se encarga prácticamente de la compilación • Cuando se ha creado un programa ejecutable este se puede ya ejecutar desde el sistema operativo con solo teclear su nombre Objeto y Abstracción de Datos • Proceso de ejecución del programa con una amplia variedad de datos de entrada, que determinarán si el programa tiene errores • Se pueden producir tres tipos de errores: Errores de compilación, Errores de ejecución, Errores lógicos • Descripciones de los pasos a dar en el proceso de resolución de un problema • La documentación es vital cuando se desea corregir posibles errores futuros o bien cambiar el programa MSc Orlando Sevilla Proceso por el cual se escribe (en un lenguaje de programación), se prueba, se depura y se mantiene el código fuente de un programa informático Los programas son los elementos que forman el software, que es el conjunto de las instrucciones que ejecuta el hardware de una computadora para realizar una tarea determinada Modelos de desarrollo de software existentes, en donde la programación es sólo una de las etapas del proceso de desarrollo de software. Programación es una de las principales áreas dentro de la informática. Objeto y Abstracción de Datos MSc Orlando Sevilla Enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas. También hay situaciones donde un paradigma resulta más apropiado que otro • Basado en procedimiento s y bloques es considerado el más común y está representado, por ejemplo, por el C o por BASIC. • Incorpora la modularidad Funcional está representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. Objeto y Abstracción de Datos • Basado en lógica de programación y condiciones no contempla los ciclos • Utiliza objetos como elementos fundamentales en la construcción de la solución MSc Orlando Sevilla Expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas Los objetos disponen de mecanismos de interacción llamados métodos que favorecen la comunicación entre ellos Permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar Los programadores que emplean éste nuevo paradigma, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos El objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases Objeto y Abstracción de Datos Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos Todas las propiedades y métodos comunes a los objetos se encapsulan o se agrupan en clases. MSc Orlando Sevilla • Propiedades y comportamiento de un tipo de objeto concreto • Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). • Su ejecución se desencadena tras la recepción de un "mensaje". • Puede producir un cambio en las propiedades del objeto • Suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto) • Comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó Objeto y Abstracción de Datos MSc Orlando Sevilla Propiedad o atributo • Contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos) • Define como sus características predeterminadas Objeto y Abstracción de Datos Estado interno Representación • Variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto • Se utiliza para indicar distintas situaciones posibles para el objeto inducir un cambio en sus propiedades • Componentes de un objeto: atributos, identidad, relaciones y métodos. • Representación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes. MSc Orlando Sevilla Denota las características esenciales de un objeto, donde se capturan sus comportamientos Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema Objeto y Abstracción de Datos Reúne a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Aumenta la cohesión de los componentes del sistema El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas Asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas MSc Orlando Sevilla Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación Las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen Objeto y Abstracción de Datos Organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes MSc Orlando Sevilla El problema de programación es analizado en términos de objetos y de la naturaleza de la comunicación entre los mismos. Se deberían elegir los objetos del mundo real si “cliente” y “cuenta” son dos objetos de un programa, entonces el objeto cliente puede enviar un mensaje al objeto cuenta solicitando un balance bancario Si pensamos sobre cómo se nos plantea un problema en la realidad podremos ver que lo que hay en la realidad son entidades ( “agentes” u “objetos”). Estas entidades poseen un conjunto de propiedades o atributos, y un conjunto de métodos mediante los cuales muestran su comportamiento Objeto y Abstracción de Datos MSc Orlando Sevilla Un chico desea enviarle flores a la madre: • Se busca Un chico desea enviarle flores a la madre. Una forma es ir a la florería y pedirselo a la vendedora. Le doy el tipo de flores y la dirección donde enviarlas 1 2 • un “objeto” (la vendedora) y le pasa un mensaje con el requerimiento. Es la responsabilidad de la vendedora el enviar las flores. Hay un método (conjunto de operaciones o algoritmo) usado por a vendedora para hacer esto. El chico no necesita conocer este método • Las acciones son iniciadas por la transmisión de un mensaje a un objeto que es responsable por la acción 3 Objeto y Abstracción de Datos MSc Orlando Sevilla • Dos ideas: Ocultar de información (dejar saber sólo lo indispensable) y sacarse la idea de tener que se debe escribir todo y no usar servicios de otros (delegar) 4 5 6 • Dos importantes diferencias entre Procedimientos y Mensajes • En mensajes hay un receptor designado, en procedimientos no. • La interpretación del mensaje (método) depende del receptor. Por ejemplo, mi esposa no actuaría igual si le pido enviar las flores • Usualmente el receptor de un mensaje no se conoce hasta tiempo de ejecución. Decimos que la ligazón entre mensajes (nombre de función o procedimiento) y el fragmento de código (método) usado para responder es determinada a tiempo de ejecución Objeto y Abstracción de Datos MSc Orlando Sevilla Imaginemos la siguiente situación: un domingo por la tarde estoy en casa viendo la televisión, y de repente mi madre siente un fuerte dolor de cabeza; como es natural, lo primero que hago es tratar de encontrar una caja de aspirinas. 1 2 3 • El objeto hijo responde al mensaje o evento ocurrido mediante una acción: buscar aspirinas. La madre no tiene que decirle al hijo dónde debe buscar, es responsabilidad del hijo resolver el problema como considere más oportuno. Al objeto madre le basta con haber emitido un mensaje. • El hijo, como objeto responsable de un cometido, sabe lo que debe hacer hasta conseguir una aspirina. Para ello entra en relación con un nuevo objeto, la farmacéutica, quien responde al mensaje o evento de petición del objeto hijo con la búsqueda de la aspirina • El objeto farmacéutica es ahora el responsable de la búsqueda de la aspirina. El objeto farmacéutica lanza un mensaje al objeto hijo solicitando el pago del importe, y el objeto hijo responde a tal evento con la acción de pagar. Objeto y Abstracción de Datos MSc Orlando Sevilla El siguiente programa contiene una clase vehículo, cuyos atributos son: matricula, hora de entrada, kilometraje de entrada, hora de salida, kilometraje de salida y contiene un método que calcula la velocidad media del automóvil, los datos serán introducidos por teclado: class vehiculo{ // Clase Vehículo y sus String matri; atributos double horaen, kiloen, horasa, kilosa; } public class AutomovilesMultados{ static double velocidadMedia(double a, double b, double c, double d){ return((a-b)/(c-d));} } Clase Automóviles Multados y el Método Velocidad Media con parámetros formales Clase Principal public static void main(String args[]) throws IOException{ int n; Instanciando la clase Vehículo vehiculo v= new vehiculo(); para Crear el objeto V Objeto y Abstracción de Datos MSc Orlando Sevilla Entrada de Datos almacenando en los atributos Objeto V InputStreamReader isr= new InputStreamReader(System.in); BufferedReader fd= new BufferedReader(isr); System.out.println("Ingrese el numero de autos:"); n=Integer.parseInt(fd.readLine()); for(int i=0;i<n;i++){ System.out.println("Ingrese la matricula del auto que esta entrando:"); v.matri=fd.readLine(); System.out.println("Ingrese la hora de entrada del vehiculo:"); v.horaen=Integer.parseInt(fd.readLine()); System.out.println("Ingrese el kilometraje de entrada:"); v.kiloen=Integer.parseInt(fd.readLine()); System.out.println("Ingrese la hora de salida del vehiculo:"); v.horasa=Integer.parseInt(fd.readLine()); System.out.println("Ingrese el kilometraje de salida:"); v.kilosa=Integer.parseInt(fd.readLine()); } Objeto y Abstracción de Datos MSc Orlando Sevilla Llamada a la Función Velocidad Media System.out.println("La velocidad media "+velocidadMedia(v.kilosa,v.kiloen,v.horasa,v.horaen)); if(+velocidadMedia(v.kilosa,v.kiloen,v.horasa,v.horaen)>120){ System.out.println("El automovil esta multado"); } } } Objeto y Abstracción de Datos MSc Orlando Sevilla