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 2
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 3

Atributos

 Valores o caractersticas de los objetos


 Permiten definir el estado del objeto u otras cualidades

 Marca
 Color
 Potencia
 Velocidad mxima
 Velocidad  Carburante
 Aceleracin
 Capacidad de
combustible
constantes

variables

Juan Pavn Mestras


Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos 4
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 5

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 6
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 7

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 8
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 9

Definicin de clases en C++

enum Carburante { void frenar() {


diesel, super, sinplomo // instrucciones para frenar el coche
}; };

class Coche { void acelerar() {


char* marca; // instrucciones para acelerar el coche
double vel_max; };
int potencia;
Carburante tipo_carburante; void girar_derecha(short grados) {
// instrucciones para girar a la derecha
double velocidad; };
double aceleracion;

public: // etc.
void arrancar() { }; // fin de definicin de la clase Coche
// instrucciones para arrancar el coche
};

Juan Pavn Mestras


Facultad de Informtica UCM, 2007-08 Programacin Orientada a Objetos 10
Definicin de clases en Java

class Coche { void frenar() {


// atributos: // instrucciones para frenar el coche
String marca; };
double vel_max;
void acelerar() {
int potencia;
// instrucciones para acelerar el coche
String tipo_carburante; };

double velocidad; void girar_derecha(short grados) {


double aceleracion; // instrucciones para girar a la derecha
};
// mtodos:
void arrancar() {
// instrucciones para arrancar el coche // 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

También podría gustarte