Sie sind auf Seite 1von 41

Programa Microsoft Desarrollador Cinco Estrellas

Estrella 0 Introduccin a la Orientacin a Objetos

Objetivo
Describir el Paradigma de Orientacin a Objetos incluyendo los conceptos relacionados al anlisis, diseo y programacin

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Paradigmas de Programacin
Hay para todos los gustos

Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Hbridos (Lisp, Visual Basic) Incomprensibles....

Cada enfoque tiene sus ventajas y desventajas Cada uno es ms apropiado para ciertas cosas

Evolucin de la POO

El mundo color de Objetos


Todo el mundo est compuesto de entidades que se relacionan e interactan entre si Qu es un Objeto?

Todo es un Objeto ~?!

Es lo mismo de siempre con otro nombre?

Pensar en Objetos .

No es el ltimo grito de la moda (1980s)

El mundo color de Objetos


Por qu Orientacin a Objetos (OO)?

Se parece ms al mundo real Permite representar modelos complejos Muy apropiada para aplicaciones de negocios Las empresas ahora s aceptan la OO Las nuevas plataformas de desarrollo la han adoptado (Java / .NET)

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Qu es un Objeto?
Informalmente, un objeto representa una entidad del mundo real Entidades Fsicas

(Ej.: Vehculo, Casa, Producto)

Entidades Conceptuales

(Ej.: Proceso Qumico, Transaccin Bancaria) (Ej.: Lista Enlazada, Interfaz Grfica)

Entidades de Software

Qu es un Objeto?
Definicin Formal (Rumbaugh):

Un objeto es un concepto, abstraccin o cosa con un significado y lmites claros en el problema en cuestin

Un objeto posee (Booch):

Estado Comportamiento Identidad

Un objeto posee Estado


Lo que el objeto sabe El estado de un objeto es una de las posibles condiciones en que el objeto puede existir El estado normalmente cambia en el transcurso del tiempo El estado de un objeto es implementado por un conjunto de propiedades (atributos), adems de las conexiones que puede tener con otros objetos

Un objeto posee Comportamiento


Lo que el objeto puede hacer El comportamiento de un objeto determina cmo ste acta y reacciona frente a las peticiones de otros objetos Es modelado por un conjunto de mensajes a los que el objeto puede responder (operaciones que puede realizar) Se implementa mediante mtodos

Un objeto posee Identidad


Cada objeto tiene una identidad nica, incluso si su estado es idntico al de otro objeto

Qu es una Clase?
Una clase es una descripcin de un grupo de objetos con:

Propiedades en comn (atributos) Comportamiento similar (operaciones) La misma forma de relacionarse con otros objetos (relaciones) Una semntica en comn (significan lo mismo) Enfatiza las caractersticas relevantes Suprime otras caractersticas (simplificacin)

Una clase es una abstraccin que:

Un objeto es una instancia de una clase

Objetos y Clases
Una clase es una definicin abstracta de un objeto

Define la estructura y el comportamiento compartidos por los objetos Sirve como modelo para la creacin de objetos

Los objetos pueden ser agrupados en clases

Ejemplo de una Clase


Clase: Curso Estado (Atributos)

Nombre Ubicacin Das Ofrecidos Horario de Inicio Horario de Trmino Agregar un Alumno Borrar un Alumno Entregar un Listado del Curso Determinar si est Completo

Comportamiento (Mtodos)

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Encapsulamiento
Poder separar la interfaz de una clase de su implementacin, o dicho en otras palabras: no es necesario conocer los detalles de cmo estn implementadas las propiedades para poder utilizarlas. Los objetos funcionan a modo de caja negra en la que estn empaquetados los datos y las instrucciones para su manipulacin, de las que conocemos solo lo necesario para utilizarla.

Modificadores de Acceso
Permiten definir el nivel de acceso (visibilidad) de los miembros (atributos o mtodos) de una clase

Publico: Cualquier clase puede ver los miembros pblicos de otra clase Privado: Slo la clase puede ver sus propios miembros privados

Existen otros dos modificadores para propsitos especficos (Paquete, Protegido)

Mensajes
El modelado de objetos no slo tiene en consideracin los objetos de un sistema, sino tambin sus interrelaciones. Mensaje

Los objetos interactan envindose mensajes unos a otros. Tras la recepcin de un mensaje el objeto actuar. La accin puede ser el envo de otros mensajes, el cambio de su estado, o la ejecucin de cualquier otra tarea que se requiera que haga el objeto.

Mensajes
Cuando un objeto A necesita que el objeto B ejecute alguno de sus mtodos, el objeto A le manda un mensaje al objeto B.

Al recibir el mensaje del objeto A, el objeto B ejecutar el mtodo adecuado para el mensaje recibido.

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Qu es UML?
UML es un lenguaje visual para especificar, construir y documentar sistemas (OMG - Object Management Group) Unified (UNIFICADO):

El aporte de muchos mtodos y notaciones Independiente de implementaciones, plataformas y lenguajes Los modelos son utilizados en todas las ingenieras Si hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje comn

Modeling (MODELADO):

Language (LENGUAJE):

UML no es Metodologa!

Una Clase en UML


Una clase est compuesta de tres secciones

La primera seccin contiene el nombre de la clase La segunda seccin muestra la estructura (atributos) La tercera seccin muestra el comportamiento (operaciones)

Curso -nombre -ubicacion -dias -inicio -fin +AgregarAlumno() +BorrarAlumno() +GenerarListadoCurso() +EstaCompleto()

La segunda y la tercera seccin pueden ser suprimidas Modificadores de Acceso

Los miembros pblicos se denotan con el signo + Los miembros privados se denotan con el signo

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Pilares de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Pilares de la Orientacin a Objetos

Abstraccin

Relaciones

Herencia

Encapsulamiento

Abstraccin
Ignorancia Selectiva

La abstraccin nos ayuda a trabajar con cosas complejas Se enfoca en lo importante Ignora lo que no es importante (simplifica)

Una clase es una abstraccin en la que:


Se enfatizan las caractersticas relevantes Se suprimen otras caractersticas

Una clase debe capturar una y solo una abstraccin clave

Encapsulamiento
Principio que establece que los atributos propios de un objeto no deben ser visibles desde otros objetos

Deben ser declarados como privados

Permite abstraer al resto del mundo de la complejidad de la implementacin interna Permite exponer el estado del objeto slo a travs del comportamiento que le hayamos definido mediante miembros pblicos Por qu es til?

Punto de Control/Validacin Mejor respuesta ante los Cambios

Relaciones
Todo sistema abarca muchas clases y objetos Los objetos contribuyen en el comportamiento de un sistema colaborando entre si

La colaboracin se logra a travs de las relaciones Asociacin Agregacin

Existen dos tipos principales de relaciones

Relaciones de Asociacin
Una asociacin es una conexin entre dos clases que representa una comunicacin

Una asociacin puede tener nombre La comunicacin puede ser tanto uni como bidireccional (por defecto) La multiplicidad es el nmero de instancias que participan en una asociacin
Una Persona es Duea de un Vehculo Un Vehculo Pertenece a una Persona
Persona -dueo Vehiculo

Ejemplo:

Relaciones de Agregacin
La agregacin es una forma especial de asociacin donde un todo se relaciona con sus partes

Tambin se conoce como una parte de o una relacin de contencin Una Puerta es una parte de un Vehculo El Vehculo es azul, la Puerta es Azul Mover el Vehculo implica mover la Puerta
Vehiculo -color +Mover() Puerta

Ejemplo:

Herencia
Clase Base

Es una relacin entre clases en la cual una clase comparte la estructura y comportamiento definido en otra clase (Grady Booch) Cada clase que hereda de otra posee:

Transporte -pasajeros +Avanzar() +Detenerse()

Los atributos de la clase base adems de los propios Soporta todos o algunos de los mtodos de la clase base

Automvil

Avin

Una subclase hereda de una clase base

Clases Derivadas o subclases

Herencia
Herencia Es-Un: herencia real, donde la subclase es un tipo especfico de la superclase

Un Cuadrado es un Rectngulo Un perro es un mamfero Un automvil es un vehculo a motor

Temas a Tratar
Paradigmas de Programacin Clases y Objetos Modificadores de Acceso Qu es UML? Principios de la Orientacin a Objetos Conceptos del Diseo Orientado a Objetos

Interfaces (1/3)
Recurso de diseo soportado por los lenguajes orientados a objetos que permite definir comportamiento Permite que clases que no estn estrechamente relacionadas entre s deban tener el mismo comportamiento La implementacin de una interfaz es un contrato que obliga a la clase a implementar todos los mtodos definidos en la interfaz

Interfaces (2/3)
Vehiculo

Aereo

Acuatico

Terrestre

Avin

Barco

Automvil

De que clase heredara la clase Hidroavin ?

Interfaces (3/3)
Se crean las interfaces que definen comportamiento Hidroavin deber definir los comportamientos de cada una de las interfaces que implemente
interface Acuatico +Navegar() interface Aereo +Volar()

Hidroavion

Polimorfismo
Es la propiedad que tienen los objetos de permitir invocar genricamente un comportamiento (mtodo) cuya implementacin ser delegada al objeto correspondiente recin en tiempo de ejecucin El polimorfismo tiende a existir en las relaciones de herencia, pero no siempre es as

Polimorfismo - Ejemplo
La definicin del mtodo reside en la clase base La implementacin del mtodo reside en la clase derivada La invocacin es resuelta al momento de ejecucin
Transporte Avanzar Frenar

Transporte
Avanzar Frenar
Transporte Avanzar Frenar Transporte Avanzar Frenar

Reutilizacin
La programacin orientada a objeto proporciona el marco idneo para la reutilizacin de las clases. Los conceptos de encapsulamiento y herencia son las bases que facilitan la reutilizacin. Un programador puede utilizar una clase existente y sin modificarla, aadirle nuevas caractersticas y datos. Esta operacin se consigue derivando una clase a partir de la clase base existente, la nueva clase hereda las propiedades de la antigua, pero se pueden aadir nuevas propiedades

2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Das könnte Ihnen auch gefallen