Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Fundamentos de la Programación Orientada a Objetos Objetos y Clases Programación Orientada a Objetos Facultad de Informática Juan Pavón Mestras Dep. Ingeniería del Software e Inteligencia Artificial Universidad Complutense Madrid Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 2 Conceptos fundamentales de la POO � Objetos � Clases � Métodos � Parámetros � Tipos de datos Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 3 Objetos � Los objetos son/representan cosas � Los objetos pueden ser simples o complejos � Los objetos pueden ser reales o imaginarios Hola Mundo Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 4 Atributos � Valores o características de los objetos � Permiten definir el estado del objeto u otras cualidades � Velocidad � Aceleración � Capacidad de combustible variables constantes � Marca � Color � Potencia � Velocidad máxima � Carburante Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 5 Mensajes � Los objetos se comunican e interaccionen entre sí por medio de mensajes � Si un objeto desea que otro objeto haga algo le envía un mensaje que puede tener información adicional en forma de parámetros � Cuando un objeto recibe un mensaje ejecutará un método u operación � Componentes de un mensaje � Objeto destinatario del mensaje (miCoche) � Método que se debe ejecutar como respuesta (cambiar marcha) � Parámetros necesarios del método (segunda) Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 6 Métodos (u operaciones) � Acciones que puede realizar un objeto � Arrancar motor � Parar motor � Acelerar � Frenar � Girar a la derecha (grados) � Girar a la izquierda (grados) � Cambiar marcha (nueva marcha) método argumentos o parámetros Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 7 Métodos (u operaciones) � Los métodos pueden devolver un valor al acabar su ejecución � Valor de retorno Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 8 Clases � Representan un tipo particular de objetos � Objetos con características y comportamiento similar � Categorías de objetos objetos de la clase Coche Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 9 Clases � Cada clase tiene asociado un código (definición de la clase), que determina � Los atributos que tienen los objetos de la clase � Los métodos que pueden ejecutar los objetos de la clase y cómo lo hacen � Programar orientado a objetos consiste en escribir código de clases de objetos Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 10 Definición de clases en C++ enum Carburante { diesel, super, sinplomo }; class Coche { char* marca; double vel_max; int potencia; Carburante tipo_carburante; double velocidad; double aceleracion; public: void arrancar() { // instrucciones para arrancar el coche }; void frenar() { // instrucciones para frenar el coche }; void acelerar() { // instrucciones para acelerar el coche }; void girar_derecha(short grados) { // instrucciones para girar a la derecha }; // etc. }; // fin de definición de la clase Coche Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 11 Definición de clases en Java class Coche { // atributos: String marca; double vel_max; int potencia; String tipo_carburante; double velocidad; double aceleracion; // métodos: void arrancar() { // instrucciones para arrancar el coche }; void frenar() { // instrucciones para frenar el coche }; void acelerar() { // instrucciones para acelerar el coche }; void girar_derecha(short grados) { // instrucciones para girar a la derecha }; // etc. }; // fin de definición de la clase Coche Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 12 Clases � De cada clase pueden crearse múltiples objetos � Cada objeto tiene valores propios asignados a los atributos: estado del objeto Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 13 Tipos de datos � Indican la naturaleza de los datos � Que se pasan como parámetro o que devuelven los métodos � De los atributos de los objetos � Hay algunos básicos (dependen del lenguaje de programación) � int � boolean � double � String � … � Y otros los definen las clases � Objetos de una clase determinada • Definida por el usuario • De una librería Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 14 Un programa en POO � Un programa consta de un conjunto de instancias o ejemplares de objetos (object instances) y un flujo de control principal (main) � Durante la ejecución del programa: � Los objetos se crean y se destruyen • Gestión dinámica de la memoria � Se les solicita a los objetos que ejecuten métodos (operaciones) Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 15 Un programa en C++ main() { Coche *c=new Coche(); // crea un objeto Coche c-> arrancar // utiliza el objeto // ... dispose(c); // elimina el objeto } Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 16 Un programa en Java class Programa { public static void main(String args[]) { Coche c=new Coche(); // crea un objeto Coche c.arrancar(); // utiliza el objeto // ... } // se elimina el objeto cuando nadie lo puede utilizar // ¡ automáticamente ! } Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 17 Ejercicios � Instalar BlueJ � Se puede encontrar en http://www.bluej.org/ � Abrir el ejemplo que tiene el nombre shapes � Crear objetos � Seleccionar un objeto y ejecutar new ClaseObjeto() � Ver atributos de objetos � Invocar métodos en objetos � Ver el código de las clases de objetos � Crear un dibujo combinando varios objetos Juan Pavón Mestras Facultad de Informática UCM, 2007-08 Programación Orientada a Objetos 18 Bibliografía � D.J. Barnes y M. Kölling, Programación orientada a objetos con Java. Una introducción práctica usando BlueJ. Pearson Educación, 2007 � T. Budd, An introduction to Object-Oriented Programming (Third Edition). Pearson Education, 2001 � E. Gamma, R. Helm, R. Johnson, J. Vlissides, Design Paterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994 � B. Stroustrup, The C++ Programming Language (Third Edition). Addison-Wesley, 1997 � Agustín Froufe. Java 2. Manual de usuario y tutorial. Ed. Ra-Ma � J. Sánchez, G. Huecas, B. Fernández y P. Moreno, Iniciación y referencia: Java 2. Osborne McGraw-Hill, 2001. � B. Meyer, Object-Oriented Software Construction (Second Edition). Prentice Hall, 1997
Compartir