Está en la página 1de 9

Fundamentos de la Programacin Orientada a Objetos

Objetos y Clases
Programacin Orientada a Objetos Facultad de Informtica

Juan Pavn Mestras Dep. Ingeniera del Software e Inteligencia Artificial Universidad Complutense Madrid

Conceptos fundamentales de la POO


Objetos Clases Mtodos Parmetros Tipos de datos

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Objetos
Los objetos son/representan cosas Los objetos pueden ser simples o complejos Los objetos pueden ser reales o imaginarios

Hola Mundo
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos

Atributos
Valores o caractersticas de los objetos Permiten definir el estado del objeto u otras cualidades

Velocidad Aceleracin Capacidad de combustible

Marca Color Potencia Velocidad mxima Carburante

constantes

variables
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos

Mensajes
Los objetos se comunican e interaccionen entre s por medio de mensajes Si un objeto desea que otro objeto haga algo le enva un mensaje que puede tener informacin adicional en forma de parmetros Cuando un objeto recibe un mensaje ejecutar un mtodo u operacin Componentes de un mensaje
Objeto destinatario del mensaje (miCoche) Mtodo que se debe ejecutar como respuesta (cambiar marcha) Parmetros necesarios del mtodo (segunda)

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Mtodos (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)

mtodo

argumentos o parmetros

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Mtodos (u operaciones)
Los mtodos pueden devolver un valor al acabar su ejecucin
Valor de retorno

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Clases
Representan un tipo particular de objetos
Objetos con caractersticas y comportamiento similar Categoras de objetos

objetos de la clase Coche

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Clases
Cada clase tiene asociado un cdigo (definicin de la clase), que determina
Los atributos que tienen los objetos de la clase Los mtodos que pueden ejecutar los objetos de la clase y cmo lo hacen

Programar orientado a objetos consiste en escribir cdigo de clases de objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

Definicin 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 };
Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

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 definicin de la clase Coche

Programacin Orientada a Objetos

10

Definicin de clases en Java


class Coche { // atributos: String marca; double vel_max; int potencia; String tipo_carburante; double velocidad; double aceleracion; // mtodos: 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 definicin de la clase Coche

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

11

Clases
De cada clase pueden crearse mltiples objetos Cada objeto tiene valores propios asignados a los atributos: estado del objeto

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

12

Tipos de datos
Indican la naturaleza de los datos
Que se pasan como parmetro o que devuelven los mtodos De los atributos de los objetos

Hay algunos bsicos (dependen del lenguaje de programacin)


int boolean double String

Y otros los definen las clases


Objetos de una clase determinada
Definida por el usuario De una librera

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

13

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 ejecucin del programa:
Los objetos se crean y se destruyen
Gestin dinmica de la memoria

Se les solicita a los objetos que ejecuten mtodos (operaciones)

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

14

Un programa en C++

main() { Coche *c=new Coche(); // crea un objeto Coche c-> arrancar // utiliza el objeto // ... dispose(c); // elimina el objeto }

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

15

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 // automticamente ! }

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

16

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 mtodos en objetos Ver el cdigo de las clases de objetos Crear un dibujo combinando varios objetos

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

17

Bibliografa
D.J. Barnes y M. Klling, Programacin orientada a objetos con Java. Una introduccin prctica usando BlueJ. Pearson Educacin, 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 Agustn Froufe. Java 2. Manual de usuario y tutorial. Ed. Ra-Ma J. Snchez, G. Huecas, B. Fernndez y P. Moreno, Iniciacin y referencia: Java 2. Osborne McGraw-Hill, 2001. B. Meyer, Object-Oriented Software Construction (Second Edition). Prentice Hall, 1997

Juan Pavn Mestras Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

18