Está en la página 1de 18

1

Tema 1.
Introduccin a la
Programacin Orientada
a Objetos (OOP)
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 2
Historia
n Programacin estructurada
Se concentra en las acciones secuenciales a realizar
por el programa
n Programacin modular (con tipos de datos)
Agrupa operaciones comunes sobre un tipo de datos
n Programacin orientada a objetos
Es un paradigma de programacin (una filosofa).
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 3
Ventajas de la POO
n La orientacin a objetos promete una solucin a los
problemas en el desarrollo de software:
Portabilidad
Reusabilidad
Extensibilidad
Comprensin
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 4
Qu es POO?
n La POO es el mtodo de implementacin en el que
los programas se organizan como colecciones
cooperativas de objetos, cada uno de los cuales
representa un ejemplar de una clase y cuyas clases
son miembros de una jerarqua de clases unidas
mediante relaciones de herencia.
Grady Booch
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 5
Principios bsicos
n La POO se basa en los siguientes principios:
Abstraccin
Encapsulamiento
Herencia
Polimorfismo
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 6
Clases y objetos
n El mundo real est lleno de objetos concretos: una
mesa, un coche, etc. cada objeto tiene un estado y
un comportamiento propio.
n Todos los objetos, an siendo nicos , son tambin
parte de una clase de objetos, todos ellos con
caractersticas y comportamientos en comn.
n Este modelo del mundo real se proyecta en el
modelo del software de forma natural.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 7
Clases y objetos
n Los objetos software en la POO tienen estas dos
caractersticas del mundo real: mantienen un estado y tienen
un comportamiento.
n Una clase(1) software define la estructura y comportamiento
genrico de un conjunto de objetos, es un patrn o modelo
para crear objetos.
n Una clase software agrupa datos (variables) -para mantener
el estado- y funciones (mtodos) que operan sobre esos
datos -para implementar el comportamiento-.
(1) Una clase se corresponde con la implementacin de un TAD en la POO.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 8
Ejemplo: clase
n Por ejemplo: la clase coche tiene unos atributos (potencia,
marca, modelo, en marcha, etc.) que almacenan su estado y
un comportamiento definido en su interfaz (
arrancar,acelerar, girar, frenar, etc.)
class Coche {
// atributos
int potencia;
:
// metodos
void arrancar() { }
:
}
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 9
Ejemplo: objeto
n Un objeto en POO es una instancia de una
determinada clase (como una variable en un
lenguaje tradicional).
n Ejemplo:
Coche micoche;
micoche = new Coche();
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 10
Mensajes
n Las peticiones de un servicio se piden al objeto (se
enva un mensaje) invocando los mtodos que
forman su interfaz.
n El objeto se encargar de llevar a cabo la peticin y
averiguar que debe hacer (ejecutar el cdigo
asociado).
n Ejemplo:
micoche.arrancar();
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 11
Relaciones de clases: uso
n Cuando una clase invoca desde sus mtodos un
servicio de otra clase entre las dos existe una
relacin de uso.
n Ejemplo UML:
Conductor Coche
conduce
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 12
Relaciones de clases: agregacin
n Es posible utilizar un objeto de una clase dentro de
otra clase como un atributo ms.
n A este tipo de relacin se le denomina agregacin
(en su forma ms general). Ejemplo UML:
Coche Motor
1
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 13
Relaciones de clases: herencia
n La herencia permite definir una nueva clase
(llamada subclase clase heredada) a partir de una
clase ya existente (llamada superclase clase
base).
n La clase que hereda incluye por defecto el estado
(atributos) y el comportamiento (mtodos) de la
superclase (reutilizacin de cdigo).
n Las relaciones de herencia dan lugar a una
estructura jerrquica de clases.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 14
Relaciones de clases: herencia
n Ejemplo:
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 15
Relaciones de clases: herencia
n La subclase hereda por defecto la interfaz de la superclase,
o sea, su comportamiento. Todos los mensajes que se
pueden enviar a la superclase tambin se podrn enviar a la
subclase (reutilizacin de interfaz).
n La subclase adems es tambin del mismo tipo que la
superclase, o sea, un crculo es una figura.
n La clase que hereda tiene dos posibilidades para
diferenciarse de la clase base original:
puede aadir nuevos atributos/mtodos a la clase base
(extensin)
puede redefinir los atributos/mtodos ya existentes en la clase
base que hereda (sobrescritura).
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 16
Polimorfismo
n Relacionado con la herencia, un objeto puede tomar
la forma de sus subclases siguiendo la jerarqua
de relaciones de herencia. Ejemplo:
Circulo c;
Figura f;
:
:
f=c; // OK, un circulo es una figura
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 17
Asociacin dinmica
n La conversin anterior plantea un problema:
si llamamos ahora a la operacin dibujar() del objeto f que
dibujar() se llamara, el de figura el de circulo?
f.dibujar(); // ?
n En los lenguajes no orientados a objetos no hay discusin:
ser siempre la operacin dibujar() de figura (se resuelve la
llamada en tiempo de compilacin).
n Sin embargo, en los LPOO existe el concepto de ligadura
tarda dinmica: hasta que no se ejecute el programa no se
determinar cul es el mtodo invocado dependiendo de la
clase del objeto en ese instante.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Tema 1. Introduccin POO 18
Bibliografa
n Anlisis y diseo orientado a objetos con
aplicaciones. Grady Booch.
Ver captulos 2-3-4.
n The Unified Modeling Language Reference Manual.
J. Rumbaugh, I.Jacobson, G. Booch.
Referencia completa de UML.
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com

También podría gustarte