You are on page 1of 29

Introduccin a la Programacin Orientada a Objetos

Programacin II Ing. Mendoza Corpus Carlos


1

Conceptos de Orientacin a Objetos


La orientacin a objetos es una manera natural de pensar acerca del mundo real y de escribir programas de cmputo. En cualquier parte del mundo real puede ver objetos: gente, animales, plantas, autos, aviones, edificios, computadoras, etc. Los humanos pensamos en trminos de objetos. Poseemos la habilidad de la abstraccin, que nos permite ver imgenes digitales de personas, aviones, rboles y montaas como objetos, en vez de verlos como puntos de colores individuales.
2

Conceptos de Orientacin a Objetos


An cuando son diferentes tipos de objetos, todos ellos tienen atributos como tamao, forma, color y peso; y todos exhiben comportamientos. Por ejemplo: una pelota rueda, rebota y se infla y desinfla; un beb llora, duerme, gatea, camina y parpadea. Los humanos aprenden acerca de los objetos estudiando sus atributos y observando sus comportamientos. Distintos objetos pueden tener atributos similares y pueden exhibir comportamientos similares.

Anlisis y Diseo Orientado a Objetos


Qu hara usted si se le pidiera crear un sistema de software para controlar las mquinas de cajero automtico para un importante banco? Para crear las mejores soluciones, debe seguir un proceso detallado para obtener un anlisis de los requerimientos de su proyecto, y para desarrollar un diseo que cumpla con esos requerimientos. Si este proceso se hace desde un punto de vista orientada a objetos, lo llamamos un proceso de anlisis y diseo orientado a objetos (A/DOO).
4

Anlisis y Diseo Orientado a Objetos


A/DOO es el trmino genrico para el proceso de analizar un problema y desarrollar un mtodo para resolverlo. Aunque existen muchos procesos de A/DOO distintos, existe un lenguaje grfico para comunicar los resultados de cualquier proceso A/DOO que se denomina Lenguaje Unificado de Modelado (UML), el cual se desarroll a mediados de la dcada de los noventa, bajo la direccin inicial de tres metodologistas de software: Grady Booch, James Rumbaugh e Ivar Jacobson.

Anlisis y Diseo Orientado a Objetos


El Lenguaje Unificado de Modelado es ahora el esquema de representacin grfica ms utilizado para modelar sistemas orientados a objetos. Una de las caractersticas ms atractiva de UML es su flexibilidad. UML es extensible e independiente de los diversos procesos de A/DOO. Los modeladores de UML tienen la libertad de disear sistemas utilizando varios procesos, pero todos los desarrolladores pueden ahora expresar esos diseos con un conjunto de notaciones estndar.
6

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
La tecnologa de objetos es parte de la evolucin en TI

Se hacen aplicaciones ms rpido


Permite la reusabilidad del cdigo

Se tiene mayor base para la calidad del software


Es la base para arquitecturas distribuidas (CORBA y RMI) y WEB
7

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
Objetos Permiten hacer sistemas ms adaptables Reducen el costo del mantenimiento y la modificacin Resultados Mejor mantenimiento Retroalimentacin con los usuarios Entregas ms rpidas a los usuarios mediante procesos iterativos e incrementales
8

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
Los Objetos son el puente entre Usuarios finales (expertos en el dominio) y programadores Anlisis y Diseo Las Clases Existen en el anlisis, el diseo y la implementacin Se relacionan directamente con los conceptos del dominio Proveen un significado natural e intuitivo de las separaciones

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
Los requerimientos y la arquitectura pueden ser capturadas en una forma razonable y repetible. Los objetos modelan los conceptos del mundo real y su comportamiento. Son fciles de entender. Interfaces bien definidas implementan calidad, funcionalidad y reusabilidad. Los cambios en los requerimientos son fciles de llevar a cabo con costos de mantenimiento menores.
10

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
Re-engeniera Cientfico Internet y eBusiness Arquitecturas Distribuidas Cliente/Servidor Financiero Comercial
11

Sistemas Empotrados

Tecnologa de Objetos

Telecomunicaciones.

OLTP

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
Diseo
Anlisis Implementacin

Modelo OO
Anlisis de Requerimientos Integracin y Pruebas

Anlisis

Diseo

Implementacin

CLASES
12

Programacin Orientada a Objetos


Cmo nos ayuda la Tecnologa de Objetos?
UML es una notacin grfica y textual

Rica, expresiva y extensible


UML no es una metodologa

UML tiene toda la semntica y la notacin necesarias para especificar los artefactos requeridos para la construccin de software orientado a objetos UML no especifica un ciclo de desarrollo

13

Programacin Orientada a Objetos


Clase Atributo

Operacin

Objeto

Tecnologa de Objetos

Mensaje

Asociacin POO
= Abstraccin Herencia

Herencia
Polimorfismo
14

Programacin Orientada a Objetos


Qu es un Objeto?
Definicin Filosfica: una entidad que uno puede reconocer.

En Tecnologa de Objetos: una abstraccin de un objeto del mundo real, ya sea fsico o conceptual.
En el dominio: una entidad relevante para el dominio de la aplicacin. En trmino de software: una estructura de datos con operaciones asociadas.
15

Programacin Orientada a Objetos


Qu son las clases y los objetos?
Una Clase: Modelos, abstraccin de objetos Define los atributos y el comportamiento de los objetos Es la platilla que define los objetos Un Objeto: Es una copia del molde de una clase Es una instancia simple de alguna clase Retiene la estructura y el comportamiento de alguna clase
16

Programacin Orientada a Objetos


Los atributos del objeto mantienen su estado actual
Los objetos almacenan su estado actual. Cada pieza almacenada (variable) se conoce como atributo. El valor de los atributos denota el estado actual del objeto.
INK
Objeto: Mi lapicero azul Atributo: Tinta disponible

Objeto: Cajero Automtico BCP

Atributo: Dinero disponible

17

Programacin Orientada a Objetos


Los objetos tienen un comportamiento
Un objeto existe para ofrecer cierto comportamiento (funcionalidad) al sistema. Cada comportamiento distinto es llamado operacin

Objeto: Mi lapicero azul

Operacin: Escribir

Objeto: Cajero automtico BCP

Operacin: Retirar
18

Programacin Orientada a Objetos


Los objetos son modelados como Abstracciones

Un objeto de Java es modelado como una representacin abstracta de un objeto del mundo real. El modelo tiene solo los atributos y operaciones que son relevantes al contexto del problema.
Contexto: Catlogo de productos Atributos y operaciones del mundo real que seran deseables en el modelo: Atributos: modelo, fabricante, precio Operaciones: cambiar precio Atributos y operaciones del mundo real que no seran deseables en el modelo: Atributos: color de la tinta Operaciones: rellenar, cambiar color, punto, escribir
19

Programacin Orientada a Objetos


Los objetos pueden ser compuestos
Los objetos pueden estar compuestos de otros objetos. Los objetos pueden ser parte de otros objetos. Esta relacin entre objetos se conoce como agregacin.

El Banco puede ser un objeto

Un Cajero puede tener teclado, lector de tarjetas, etc. Todas estas partes pueden ser tambin objetos.

El Banco puede tener Cajeros que pueden ser objetos


20

Programacin Orientada a Objetos


Persona Clase
getNombre setEdad getEdad() Mensaje

Objeto

getEdad nombre direccion edad

getDireccion

setDireccion

Cliente o Invocador
21

Programacin Orientada a Objetos


Los objetos colaboran entre si
Los objetos trabajan juntos para cumplir una funcin y forman la base de una aplicacin. Todos los mtodos son definidos dentro de una clase. Todos los objetos son creados desde alguna clase y contiene todos los atributos y mtodos de la clase. Los objetos se asocian con otros para colaborar en una tarea comn. Los objetos asociados se comunican a travs del envo de mensajes (llamadas a mtodos)
22

Programacin Orientada a Objetos


Los objetos interactan mediante mensajes
El objeto invocador debe estar asociado o enlazado con el que

recibe la llamada. El objeto que enva el mensaje pide al receptor que realice alguna operacin que es especificada en el mensaje. Similar a la llamada a procedimientos o funciones: El que enva llama algn mtodo del receptor. El receptor ejecuta la tarea especificada. La llamada a mtodos es siempre en el contexto de algn objeto: miLapiz.escribe( ): Programacin orientada a objetos. escribe (miLapiz): Programacin estructurada tradicional.
23

Programacin Orientada a Objetos


Qu es una clase?
Una clase es una plantilla para crear objetos. La definicin de una clase especifica las operaciones y los

atributos para todas las instancias de la clase (objetos).

Cuando se crea el objeto mi lapicero azul, no hay que especificar sus operaciones o atributo. Simplemente se cual es la clase del objeto que se crea.
24

Programacin Orientada a Objetos


Clases vs Objetos
Las clases son la definicin esttica y estndar que usamos para

comprender todos los objetos de una clase (tipo).


Los objetos los entidades (ejemplares) dinmicos que existen en

el mundo real y en nuestra simulacin de este.


Advertencia: Los especialistas ya acostumbrados a la orientacin

a objetos usan las palabras clase y objeto de forma indistinta; se debe entender el contexto para diferenciar entre estos dos significados.
25

Programacin Orientada a Objetos


Qu es el encapsulamiento?
El encapsulamiento consiste en ocultad la estructura y las operaciones de un objeto detrs de su interface. El cajero automtico es un objeto que le da dinero a sus clientes: El cajero oculta a sus clientes las operaciones internas que realiza. La interface (medio de operacin del cajero) es ofrecida por las funciones del teclado, la pantalla, y otros dispositivos. Si se pidiera violar el encapsulamiento del cajero se pudiera robar al banco. Violar el encapsulamiento en orientacin a objetos es imposible.
26

Programacin Orientada a Objetos


Qu es la Herencia?
Puede ser la concordancia entre varias clases. Define las propiedades comunes en una clase superclase. Las subclases usan la herencia para aadir atributos o mtodos. Las subclases usan la herencia para cambiar mtodos.
Superclase Clase base Clase padre Cuenta Cuenta de ahorros Cuenta corriente Subclase Clase derivada Clase hija
27

Programacin Orientada a Objetos


Uso de la relacin es-un-tipo-de

Un objeto de la subclase es un tipo

de objetos de la superclase.
La subclase tiene todos los atributos

Lapicero Cuenta

y comportamientos de la superclase.
Lpiz Cuenta de Ahorros
28

Programacin Orientada a Objetos


Qu es el Polimorfismo?
El polimorfismo se refiere a: Varias formas de hacer la misma operacin La habilidad de solicitar una operacin con el mismo significado a diferentes objetos, sabiendo que cada objeto implementa la operacin a su forma. Los principios de la herencia y de la substitucin de objetos

Cargan pasajeros

29

You might also like