Introducción a la Orientación a Objetos

38
Material Original de Material Original de Microsoft para Microsoft para desarrolladores desarrolladores adaptado por adaptado por Jorge Miguel PERALTA Jorge Miguel PERALTA para clases de Informática Aplicada para clases de Informática Aplicada (Haga clic para adelantar/atrasar o bien espere 15” y (Haga clic para adelantar/atrasar o bien espere 15” y sigue) sigue)

description

Material Original de Microsoft para desarrolladores adaptado por Jorge Miguel PERALTA para clases de Informática Aplicada (Haga clic para adelantar/atrasar o bien espere 15” y sigue). Introducción a la Orientación a Objetos. Objetivo. - PowerPoint PPT Presentation

Transcript of Introducción a la Orientación a Objetos

Material Original de Material Original de Microsoft para Microsoft para desarrolladoresdesarrolladores

adaptado por adaptado por Jorge Miguel PERALTA Jorge Miguel PERALTA

para clases de Informática Aplicadapara clases de Informática Aplicada

(Haga clic para adelantar/atrasar o bien espere 15” y sigue)(Haga clic para adelantar/atrasar o bien espere 15” y sigue)

Introducción a la Introducción a la Orientación a Orientación a

ObjetosObjetos

ObjetivoObjetivo

Describir el Paradigma de Orientación Describir el Paradigma de Orientación a Objetos incluyendo los conceptos a Objetos incluyendo los conceptos relacionados al análisis, diseño y relacionados al análisis, diseño y

programaciónprogramación

PrerrequisitosPrerrequisitos

Poseer los conocimientos Poseer los conocimientos proporcionados en los siguientes proporcionados en los siguientes módulos de la Estrella 0:módulos de la Estrella 0: Fundamentos de ProgramaciónFundamentos de Programación

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Principios de la Orientación a ObjetosPrincipios de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

Paradigmas de Paradigmas de ProgramaciónProgramación

Hay para todos los gustosHay para todos los gustos Estructurados (C, Pascal, Basic, etc.)Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML)Funcionales (CAML) Declarativos (Prolog)Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Orientados a Objetos (C#, VB.NET, Smalltalk,

Java)Java) Orientados a AspectosOrientados a Aspectos Híbridos (Lisp, Visual Basic)Híbridos (Lisp, Visual Basic) Incomprensibles....Incomprensibles....

Cada enfoque tiene sus ventajas y Cada enfoque tiene sus ventajas y desventajasdesventajasCada uno es más apropiado para ciertas Cada uno es más apropiado para ciertas cosascosas

El mundo color de ObjetosEl mundo color de Objetos

Todo el mundo está compuesto de Todo el mundo está compuesto de entidades que se relacionan e entidades que se relacionan e interactúan entre siinteractúan entre si

¿Qué es un Objeto?¿Qué es un Objeto? Todo es un Objeto ¡¿~?!Todo es un Objeto ¡¿~?!

¿Es lo mismo de siempre con otro ¿Es lo mismo de siempre con otro nombre?nombre? Pensar en Objetos ….Pensar en Objetos ….

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

El mundo color de ObjetosEl mundo color de Objetos

¿Por qué Orientación a Objetos (OO)?¿Por qué Orientación a Objetos (OO)? Se parece más al mundo realSe parece más al mundo real Permite representar modelos complejosPermite representar modelos complejos Muy apropiada para aplicaciones de Muy apropiada para aplicaciones de

negociosnegocios Las empresas ahora sí aceptan la OOLas empresas ahora sí aceptan la OO Las nuevas plataformas de desarrollo la Las nuevas plataformas de desarrollo la

han adoptado (Java / .NET)han adoptado (Java / .NET)

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Principios de la Orientación a ObjetosPrincipios de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

¿Qué es un Objeto?¿Qué es un Objeto?

Informalmente, un objeto representa Informalmente, un objeto representa una entidad del mundo realuna entidad del mundo realEntidades Físicas Entidades Físicas

(Ej.: (Ej.: Vehículo, Casa, ProductoVehículo, Casa, Producto))

Entidades Conceptuales Entidades Conceptuales (Ej.: Proceso Químico, (Ej.: Proceso Químico, Transacción Transacción

BancariaBancaria))

Entidades de Software Entidades de Software (Ej.: Lista Enlazada, (Ej.: Lista Enlazada, Interfaz GráficaInterfaz Gráfica))

¿Qué es un Objeto?¿Qué es un Objeto?

Definición Formal Definición Formal (Rumbaugh)(Rumbaugh):: ““Un objeto es un concepto, abstracción Un objeto es un concepto, abstracción

o cosa con un significado y límites o cosa con un significado y límites claros en el problema en cuestión” claros en el problema en cuestión”

Un objeto posee (Booch):Un objeto posee (Booch): EstadoEstado ComportamientoComportamiento IdentidadIdentidad

Un objeto posee EstadoUn objeto posee Estado

Lo que el objeto sabeLo que el objeto sabeEl estado de un objeto es una de las El estado de un objeto es una de las posibles condiciones en que el objeto posibles condiciones en que el objeto puede existirpuede existirEl estado normalmente cambia en el El estado normalmente cambia en el transcurso del tiempotranscurso del tiempoEl estado de un objeto es El estado de un objeto es implementado por un conjunto de implementado por un conjunto de propiedades (atributos), además de propiedades (atributos), además de las conexiones que puede tener con las conexiones que puede tener con otros objetosotros objetos

Un objeto posee Un objeto posee ComportamientoComportamiento

Lo que el objeto puede hacerLo que el objeto puede hacerEl comportamiento de un objeto El comportamiento de un objeto determina cómo éste actúa y determina cómo éste actúa y reacciona frente a las peticiones de reacciona frente a las peticiones de otros objetosotros objetosEs modelado por un conjunto de Es modelado por un conjunto de mensajes a los que el objeto puede mensajes a los que el objeto puede responder (operaciones que puede responder (operaciones que puede realizar)realizar)Se implementa mediante métodosSe implementa mediante métodos

Un objeto posee IdentidadUn objeto posee Identidad

Cada objeto tiene una identidad Cada objeto tiene una identidad única, incluso si su estado es única, incluso si su estado es idéntico al de otro objetoidéntico al de otro objeto

¿Qué es una Clase?¿Qué es una Clase?

Una clase es una descripción de un Una clase es una descripción de un grupo de objetos con: grupo de objetos con: Propiedades en común (atributos)Propiedades en común (atributos) Comportamiento similar (operaciones)Comportamiento similar (operaciones) La misma forma de relacionarse con La misma forma de relacionarse con

otros objetos (relaciones)otros objetos (relaciones) Una semántica en común (significan lo Una semántica en común (significan lo

mismo)mismo)

Una clase es una abstracción que:Una clase es una abstracción que: Enfatiza las características relevantesEnfatiza las características relevantes Suprime otras características Suprime otras características

(simplificación)(simplificación)

Un objeto es una instancia de una Un objeto es una instancia de una claseclase

Objetos y ClasesObjetos y ClasesUna clase es una definición abstracta de Una clase es una definición abstracta de un objetoun objeto Define la estructura y el comportamiento Define la estructura y el comportamiento

compartidos por los objetoscompartidos por los objetos Sirve como modelo para la creación de objetos Sirve como modelo para la creación de objetos

Los objetos pueden ser agrupados en Los objetos pueden ser agrupados en clasesclases

Ejemplo de una ClaseEjemplo de una ClaseClase: CursoClase: CursoEstado (Atributos)Estado (Atributos) NombreNombre UbicaciónUbicación Días OfrecidosDías Ofrecidos Horario de InicioHorario de Inicio Horario de TérminoHorario de Término

Comportamiento (Métodos)Comportamiento (Métodos) Agregar un AlumnoAgregar un Alumno Borrar un AlumnoBorrar un Alumno Entregar un Listado del CursoEntregar un Listado del Curso Determinar si está CompletoDeterminar si está Completo

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Pilares de la Orientación a ObjetosPilares de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

Modificadores de AccesoModificadores de Acceso

Permiten definir el nivel de acceso Permiten definir el nivel de acceso (visibilidad) de los miembros (visibilidad) de los miembros (atributos o métodos) de una clase(atributos o métodos) de una clase Publico: Cualquier clase puede “ver” los Publico: Cualquier clase puede “ver” los

miembros públicos de otra clasemiembros públicos de otra clase Privado: Sólo la clase puede ver sus Privado: Sólo la clase puede ver sus

propios miembros privadospropios miembros privados

Existen otros dos modificadores para Existen otros dos modificadores para propósitos específicos (Paquete, propósitos específicos (Paquete, Protegido)Protegido)

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Pilares de la Orientación a ObjetosPilares de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

¿Qué es UML?¿Qué es UML?““UML es un lenguaje visual para UML es un lenguaje visual para especificar, construir y documentar especificar, construir y documentar sistemas” (OMG - Object Management sistemas” (OMG - Object Management Group)Group)Unified (UNIFICADO):Unified (UNIFICADO): El aporte de muchos métodos y notacionesEl aporte de muchos métodos y notaciones Independiente de implementaciones, Independiente de implementaciones,

plataformas y lenguajesplataformas y lenguajes

Modeling (MODELADO):Modeling (MODELADO): Los modelos son utilizados en todas las Los modelos son utilizados en todas las

ingenieríasingenierías

Language (LENGUAJE):Language (LENGUAJE): Si hay gente, requieren comunicarse. Si se Si hay gente, requieren comunicarse. Si se

tienen que comunicar, se tienen que entender. tienen que comunicar, se tienen que entender. Para entenderse necesitan un lenguaje comúnPara entenderse necesitan un lenguaje común

¡UML no es Metodología!¡UML no es Metodología!

Una Clase en UMLUna Clase en UMLUna clase está compuesta de Una clase está compuesta de tres seccionestres secciones La primera sección contiene el La primera sección contiene el

nombre de la clasenombre de la clase La segunda sección muestra la La segunda sección muestra la

estructura (atributos)estructura (atributos) La tercera sección muestra el La tercera sección muestra el

comportamiento (operaciones)comportamiento (operaciones)

La segunda y la tercera La segunda y la tercera sección pueden ser sección pueden ser suprimidassuprimidasModificadores de AccesoModificadores de Acceso Los miembros públicos se Los miembros públicos se

denotan con el signo “+”denotan con el signo “+” Los miembros privados se Los miembros privados se

denotan con el signo “–”denotan con el signo “–”

+AgregarAlumno()+BorrarAlumno()+GenerarListadoCurso()+EstaCompleto()

-nombre-ubicacion-dias-inicio-fin

Curso

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Pilares de la Orientación a ObjetosPilares de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

Pilares de la Orientación a Pilares de la Orientación a ObjetosObjetos

RelacionesRelaciones

HerenciaHerencia

AbstracciónAbstracción

Encapsulamiento Encapsulamiento

AbstracciónAbstracción

Ignorancia SelectivaIgnorancia Selectiva La abstracción nos ayuda a trabajar con La abstracción nos ayuda a trabajar con

cosas complejascosas complejas Se enfoca en lo importanteSe enfoca en lo importante Ignora lo que no es importante Ignora lo que no es importante

(simplifica)(simplifica)

Una clase es una abstracción en la Una clase es una abstracción en la que:que:

Se enfatizan las características Se enfatizan las características relevantesrelevantes

Se suprimen otras característicasSe suprimen otras características

Una clase debe capturar una y solo Una clase debe capturar una y solo una abstracción claveuna abstracción clave

EncapsulamientoEncapsulamientoPrincipio que establece que los Principio que establece que los atributos propios de un objeto no atributos propios de un objeto no deben ser visibles desde otros deben ser visibles desde otros objetosobjetos Deben ser declarados como privadosDeben ser declarados como privados

Permite abstraer al resto del mundo Permite abstraer al resto del mundo de la complejidad de la de la complejidad de la implementación internaimplementación internaPermite exponer el estado del objeto Permite exponer el estado del objeto sólo a través del comportamiento sólo a través del comportamiento que le hayamos definido mediante que le hayamos definido mediante miembros públicosmiembros públicos¿Por qué es útil?¿Por qué es útil? Punto de Control/ValidaciónPunto de Control/Validación Mejor respuesta ante los CambiosMejor respuesta ante los Cambios

RelacionesRelaciones

Todo sistema abarca muchas clases Todo sistema abarca muchas clases y objetos y objetos Los objetos contribuyen en el Los objetos contribuyen en el comportamiento de un sistema comportamiento de un sistema colaborando entre si colaborando entre si La colaboración se logra a través de las La colaboración se logra a través de las

relaciones relaciones

Existen dos tipos principales de Existen dos tipos principales de relaciones relaciones AsociaciónAsociación AgregaciónAgregación

Relaciones de AsociaciónRelaciones de Asociación

Una asociación es una conexión entre dos Una asociación es una conexión entre dos clases que representa una comunicaciónclases que representa una comunicación Una asociación puede tener nombreUna asociación puede tener nombre La comunicación puede ser tanto uni como bi-La comunicación puede ser tanto uni como bi-

direccional (por defecto)direccional (por defecto) La multiplicidad es el número de instancias La multiplicidad es el número de instancias

que participan en una asociaciónque participan en una asociación

Ejemplo:Ejemplo: Una Persona es Dueña de un VehículoUna Persona es Dueña de un Vehículo Un Vehículo Pertenece a una PersonaUn Vehículo Pertenece a una Persona

Persona Vehiculo-dueño

Relaciones de AgregaciónRelaciones de Agregación

La agregación es una forma especial de La agregación es una forma especial de asociación donde un todo se relaciona con asociación donde un todo se relaciona con sus partessus partes También se conoce como “una parte de” o una También se conoce como “una parte de” o una

relación de contenciónrelación de contención

Ejemplo:Ejemplo: Una Puerta es una parte de un VehículoUna Puerta es una parte de un Vehículo El Vehículo es azul, la Puerta es AzulEl Vehículo es azul, la Puerta es Azul Mover el Vehículo implica mover la PuertaMover el Vehículo implica mover la Puerta

+Mover()

-color

Vehiculo Puerta

HerenciaHerencia

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

base además de los base además de los propiospropios

Soporta todos o algunos Soporta todos o algunos de los métodos de la clase de los métodos de la clase basebase

Una subclase hereda de Una subclase hereda de una clase baseuna clase base

+Avanzar()+Detenerse()

-pasajeros

Transporte

Automóvil Avión

Clase BaseClase Base

Clases Derivadas oClases Derivadas o

subclasessubclases

HerenciaHerencia

Herencia “Es-Un”: herencia real, Herencia “Es-Un”: herencia real, donde la subclase es un tipo donde la subclase es un tipo específico de la superclaseespecífico de la superclase Un Cuadrado Un Cuadrado es unes un Rectángulo Rectángulo Un perro es un mamíferoUn perro es un mamífero Un automóvil es un vehículo a motorUn automóvil es un vehículo a motor

Temas a TratarTemas a Tratar

Paradigmas de ProgramaciónParadigmas de ProgramaciónClases y ObjetosClases y ObjetosModificadores de AccesoModificadores de Acceso¿Qué es UML?¿Qué es UML?Principios de la Orientación a ObjetosPrincipios de la Orientación a ObjetosConceptos del Diseño Orientado a Conceptos del Diseño Orientado a ObjetosObjetos

Interfaces (1/3)Interfaces (1/3)

Recurso de diseño soportado por los Recurso de diseño soportado por los lenguajes orientados a objetos que lenguajes orientados a objetos que permite definir comportamientopermite definir comportamientoPermite que clases que no están Permite que clases que no están estrechamente relacionadas entre sí estrechamente relacionadas entre sí deban tener el mismo deban tener el mismo comportamientocomportamientoLa implementación de una interfaz La implementación de una interfaz es un contrato que obliga a la clase a es un contrato que obliga a la clase a implementar todos los métodos implementar todos los métodos definidos en la interfazdefinidos en la interfaz

Interfaces (2/3)Interfaces (2/3)

¿ De que clase heredaría la clase ¿ De que clase heredaría la clase Hidroavión ?Hidroavión ?

¿ De que clase heredaría la clase ¿ De que clase heredaría la clase Hidroavión ?Hidroavión ?

Vehiculo

Avión Barco

Aereo TerrestreAcuatico

Automóvil

Interfaces (3/3)Interfaces (3/3)

Se crean las interfaces que definen Se crean las interfaces que definen comportamientocomportamientoHidroavión deberá definir los Hidroavión deberá definir los comportamientos de cada una de las comportamientos de cada una de las interfaces que implementeinterfaces que implemente

Hidroavion

+Navegar()

«interface»Acuatico

+Volar()

«interface»Aereo

Es la propiedad que tienen los Es la propiedad que tienen los objetos de permitir invocar objetos de permitir invocar genéricamente un comportamiento genéricamente un comportamiento (método) cuya implementación será (método) cuya implementación será delegada al objeto correspondiente delegada al objeto correspondiente recién en tiempo de ejecuciónrecién en tiempo de ejecuciónEl polimorfismo tiende a existir en El polimorfismo tiende a existir en las relaciones de herencia, pero no las relaciones de herencia, pero no siempre es asísiempre es así

PolimorfismoPolimorfismo

Polimorfismo - EjemploPolimorfismo - Ejemplo

La definición del método reside en la La definición del método reside en la clase baseclase baseLa implementación del método La implementación del método reside en la clase derivadareside en la clase derivadaLa invocación es resuelta al La invocación es resuelta al momento de ejecuciónmomento de ejecución

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

Transporte

Avanzar

Frenar

FinFin

MagisterMagister, , una una

idea para saber …idea para saber …