You are on page 1of 28

INTRODUCCIN A LA PROGRAMACIN ORIENTADA A OBJETOS - POO

PROGRAMACIN MULTIMEDIA

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES LA PROGRAMACIN ORIENTADA A OBJETOS?


La forma de percibir y pensar sobre los problemas se acerca a los mecanismos cognitivos humanos y es muy parecida a la forma en que se abordan en otros dominios. Existe la esperanza de que esta tcnica sea la clave para incrementar la productividad y mejorar la fiabilidad de los sistemas software ( solucin a la crisis del software ) Existe la esperanza de que la transicin de los lenguajes existentes a los orientados a objetos sea fcil

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

PROGRAMACIN MODULAR VS POO

Programacin modular

Unidad bsica: funcin o procedimiento

Programa modular

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

PROGRAMACIN MODULAR VS POO

Programacin Orientada a Objetos

Unidad bsica: el objeto

Programa con objetos

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

EJEMPLO DE PROGRAMACIN MODULAR


struct persona{
string ci; string nombre; string apellidos;

}; int main(,){ persona alumno; alumno.ci = 2323232; alumno.nombre = Jorge; alumno.apellidos = Lopez; cout<<Su Nombre es:<<alumno.nombre; return 0; }
Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

EJEMPLO DE PROGRAMACIN ORIENTADA A OBJETOS


class persona{
private: string ci; string nombre; string apellidos; public: void setCI(string ci){ .. }; void setNombre(string nombre){ .. }; void setApellidos(string apellidos){ .. }; string getCI(){ .. }; string getNombre(){ .. }; string getApellidos{ .. };

}; int main(..,..){ persona p; p.setCI(23232);


cout<<CI:<<p.getCI(); return 0;

}
Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

PRINCIPIOS DE LA POO
Todo son objetos Un programa es una coleccin de objetos. Los objetos interactan realizando peticiones de servicios a otros objetos mediante mensajes. El cmputo avanza mediante la interaccin de los objetos Todo objeto es un ejemplar de un clase. Una clase agrupa objetos similares.

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN OBJETO?
En el mundo real, todo son objetos: un perro, una casa, un coche, etc. Un objeto del mundo real tiene dos caractersticas:

Estado (nombre, color, tamao, etc) Comportamiento (ladrar, correr, dormir, etc)

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN OBJETO?

En el modelo Orientado a Objetos todo objeto tiene:


Identidad: Los objetos pueden distinguirse unos de otros. Comportamiento: Los objetos pueden realizar ciertas tareas. El comportamiento se modela por medio de mtodos. Estado: Los objetos almacenan informacin. El estado se modela por medio de atributos.

OBJETO
9

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN OBJETO?

Comunicacin entre objetos


Una aplicacin en ejecucin es una comunidad de objetos que se comunican entre s. Los objetos interaccionan con otros objetos enviando mensajes.

Mensaje = destinatario + accin + argumentos

El algoritmo o conjunto de operaciones que ejecuta un objeto como respuesta a un mensaje se llama mtodo
10

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN OBJETO? MENSAJES VS PROCEDIMIENTO/FUNCIN

Los mensajes se diferencian de las llamadas a procedimiento en varios aspectos


El mensaje posee un receptor designado; el receptor es algn objeto al cual se enva un mensaje La interpretacin del mensaje (el mtodo usado para responder al mensaje) depende del receptor y puede variar con diferentes receptores (concepto de polimorfismo) El modelo de paso de mensajes incluye tanto comunicacin sncrona como asncrona El receptor no tiene por qu estar en el mismo proceso o incluso la misma mquina del emisor

11

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN CLASE?

Todos los objetos de un mismo tipo comparten la misma clase Todo objeto es instancia de alguna clase La clase describe las caractersticas de los objetos de la misma clase
Qu atributos tienen Qu mtodos tienen

La clase constituye la plantilla de un mismo tipo de objetos


Constituye la base para poder crear un objeto Cuando se crea un objeto de una clase se dice que se instancia un objeto de dicha clase

La clase es un concepto esttico (en tiempo de diseo) mientras que el objeto es un concepto dinmico (en tiempo de ejecucin)

12

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

QUE ES UN CLASE?
class persona{
private: string ci; string nombre; string apellidos; public: void setCI(string ci){ .. }; void setNombre(string nombre){ .. }; void setApellidos(string apellidos){ .. }; string getCI(){ .. }; string getNombre(){ .. }; string getApellidos{ .. };

CLASE

}; int main(..,..){ persona p; p.setCI(23232);


cout<<CI:<<p.getCI(); return 0;

OBJETO
13

}
Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

ENCAPSULACIN OCULTACIN DE LA INFORMACIN


Capacidad de ocultar ciertos atributos o comportamientos y mostrar otros Los objetos de un sistema de informacin vistos como clientes de los servicios que les proveen ciertos objetos, slo necesitan conocer el conjunto de mensajes que dichos objetos aceptan (la interfaz). El cliente que enva la peticin no necesita conocer cmo se atiende dicha peticin (las acciones que se llevan a cabo)

14

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

ENCAPSULACIN

En Programacin Orientada a Objetos se considera buena prctica:


Ocultar todos los atributos Publicar mtodos de acceso a los atributos (get/set) Publicar nicamente los mtodos necesarios

15

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

ENCAPSULACIN
Cmo controlar la visibilidad de atributos y mtodos? Los lenguajes de programacin suelen proporcionar ciertas palabras clave:
public: acceso pblico sin restricciones private: acceso restringido nicamente desde el interior del objeto protected: acceso restringido desde el interior del objeto o cualquiera de las subclases en una jerarqua de herencia

16

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

ENCAPSULACIN
class persona{
private: Visibilidad string ci; string nombre; string apellidos; public: void setCI(string ci){ .. }; void setNombre(string nombre){ .. }; void setApellidos(string apellidos){ .. }; string getCI(){ .. }; string getNombre(){ .. }; string getApellidos{ .. };

};
Programacin Multimedia

17

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

HERENCIA
Poderoso mecanismo de reutilizacin de cdigo (mucho ms potente que los procedimientos) por el cual una clase puede heredar los atributos y mtodos de otra clase. Mecanismo por el que es posible definir clases a partir de otras clases Conceptualmente, se dice que el conocimiento de una clase ms general es aplicable tambin a la clase ms especfica. Se habla por tanto tambin de generalizacin/especializacin La tcnica reside en factorizar los aspectos comunes en una clase base y heredar de dicha clase

18
Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

HERENCIA JERARQUIAS DE HERENCIA

Las clases se pueden organizar en una estructura de rbol, llamada jerarqua de herencia La informacin (datos y comportamiento) asociados con un nivel de una jerarqua de clases es aplicable automticamente a los niveles inferiores de la jerarqua La clase base se denomina superclase o clase padre La clase que hereda se denomina subclase, clase hija

19

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

HERENCIA

Clasificacin de los vertebrados

20

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

POLIMORFISMO
Polimorfismo: muchas formas. Fuertemente ligado con el concepto de herencia. Todo objeto que pertenece a una subclase pertenece tambin a la superclase Una subclase puede sobreescribir el comportamiento de alguna clase padre en su jerarqua de herencia Para un mismo mensaje cada clase se comporta de una manera diferente (la implementacin del mtodo es diferente)

21

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

POLIMORFISMO

22

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

REUTILIZACIN DE CLASES
El nfasis de la OO en la construccin de componentes independientes permite un proceso de desarrollo incremental, en el cual unidades de software individuales (clases) se disean, programan y prueban antes de combinarse en un sistema grande

Al reducir la interdependencia entre los componentes software, la orientacin a objetos permite el desarrollo de sistemas de software reutilizable
23

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

REUTILIZACIN DE CLASES VENTAJAS


Un componente que se reutiliza no tiene que ser reescrito El coste incremental de reutilizar un componente es menor que el coste de volver a desarrollarlo Un conjunto estndar de componentes es ms fcil de mantener Un componente reutilizado habr sido probado y utilizado minuciosamente, y seguramente estar libre de errores o tendr muchos menos que uno desarrollado por nosotros

24

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

REUTILIZACIN DE CLASES

Mecanismos para reutilizar las clases

Composicin: La relacin tiene-un o parte-de

Herencia: La relacin es-un

25

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

REUTILIZACIN DE CLASES
COMPOSICIN Usando la relacin tieneun, un componente es simplemente parte del estado de otro componente o de otra manera, un componente est compuesto-de.
Un coche tiene-un motor Una casa tiene-una puerta Una receta tiene-una lista de ingredientes

HERENCIA En la herencia un componente es-una variacin de otro, y hereda todas las caractersticas del primero sin necesidad de volver a codificarlo.

26

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

RESUMEN
Adems de un acercamiento al lenguaje natural, la POO aporta dos grandes ventajas en el mbito de la programacin:
Facilita la reutilizacin de cdigo Mejora la modularidad y el control de errores, lo que se nota, sobre todo, en aplicaciones grandes.

27

Programacin Multimedia

INTRODUCCIN ALA PROGRAMACIN ORIENTADA A OBJETOS

RESUMEN
La POO se basa en tres conceptos: Encapsulamiento. Unir bajo una misma entidad lgica datos y cdigo que lo manipula, aislndolos del resto. En POO esto se consigue con las clases. Polimorfismo. La POO aporta la posibilidad de polimorfismo cuando un mtodo produce efectos diferentes en funcin de la clase a la que se aplique. Es importante no confundir el polimorfismo con la sobrecarga de funciones o la sobrecarga de operadores. Herencia. La herencia aprovecha las clases ya definidas para definir otras ms especficas, que heredan los miembros de las clases ms generales. A la clase ms general se la denomina clase base o superclase, y a la ms especfica clase hija o subclase.
Programacin Multimedia

28

You might also like