Logo Studenta

1 1 objetos y clases

¡Estudia con miles de materiales!

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

Continuar navegando