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

Juan Pavn Mestras


Facultad de Informtica UCM, 2007-08

Programacin Orientada a Objetos

argumentos
o
parmetros

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
};

void frenar() {
// instrucciones para frenar el coche
};

class Coche {
char* marca;
double vel_max;
int potencia;
Carburante tipo_carburante;

void acelerar() {
// instrucciones para acelerar el coche
};
void girar_derecha(short grados) {
// instrucciones para girar a la derecha
};

double velocidad;
double aceleracion;
public:
void arrancar() {
// instrucciones para arrancar el coche
};
Juan Pavn Mestras
Facultad de Informtica UCM, 2007-08

// etc.
}; // fin de definicin de la clase Coche

Programacin Orientada a Objetos

10

Definicin de clases en Java


void frenar() {
// instrucciones para frenar el coche
};

class Coche {
// atributos:
String marca;
double vel_max;
int potencia;
String tipo_carburante;

void acelerar() {
// instrucciones para acelerar el coche
};

double velocidad;
double aceleracion;

void girar_derecha(short grados) {


// instrucciones para girar a la derecha
};

// mtodos:
void arrancar() {
// instrucciones para arrancar el coche
};

Juan Pavn Mestras


Facultad de Informtica UCM, 2007-08

// etc.
}; // fin de definicin de la clase Coche

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





Hay algunos bsicos (dependen del lenguaje de programacin)








Que se pasan como parmetro o que devuelven los mtodos


De los atributos de los objetos

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