SlideShare una empresa de Scribd logo
1 de 33
Temas a TratarTemas a Tratar
Paradigmas de ProgramaciónParadigmas de Programación
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
El mundo color de ObjetosEl mundo color de Objetos
Todo el mundo está compuesto deTodo el mundo está compuesto de
entidades que se relacionan e interactúanentidades que se relacionan e interactúan
entre sientre si
¿Qué es un Objeto?¿Qué es un Objeto?
 Todo es un Objeto ¡¿~?!Todo es un Objeto ¡¿~?!
¿Es lo mismo de siempre con otro nombre?¿Es lo mismo de siempre con otro nombre?
 Pensar en Objetos ….Pensar en Objetos ….
No es el último grito de la moda (1980s)No es el último grito de la moda (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 negociosMuy apropiada para aplicaciones de negocios
 Las empresas ahora sí aceptan la OOLas empresas ahora sí aceptan la OO
 Las nuevas plataformas de desarrollo la hanLas nuevas plataformas de desarrollo la han
adoptado (Java / .NET)adoptado (Java / .NET)
Temas a TratarTemas a Tratar
Paradigmas de ProgramaciónParadigmas de Programación
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
¿Qué es un Objeto?¿Qué es un Objeto?
Informalmente, un objeto representa unaInformalmente, un objeto representa una
entidad del mundo realentidad del mundo real
Entidades FísicasEntidades Físicas
 (Ej.:(Ej.: Vehículo, Casa, ProductoVehículo, Casa, Producto))
Entidades ConceptualesEntidades Conceptuales
 (Ej.: Proceso Químico,(Ej.: Proceso Químico, Transacción BancariaTransacción Bancaria))
Entidades de SoftwareEntidades de Software
 (Ej.: Lista Enlazada,(Ej.: Lista Enlazada, Interfaz GráficaInterfaz Gráfica))
¿Qué es un Objeto?¿Qué es un Objeto?
Definición FormalDefinición Formal (Rumbaugh)(Rumbaugh)::
 ““Un objeto es un concepto, abstracción o cosaUn objeto es un concepto, abstracción o cosa
con un significado y límites claros en elcon un significado y límites claros en el
problema en cuestión”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 sabe
El estado de un objeto es una de lasEl estado de un objeto es una de las
posibles condiciones en que el objeto puedeposibles condiciones en que el objeto puede
existirexistir
El estado normalmente cambia en elEl estado normalmente cambia en el
transcurso del tiempotranscurso del tiempo
El estado de un objeto es implementado porEl estado de un objeto es implementado por
un conjunto de propiedades (atributos),un conjunto de propiedades (atributos),
además de las conexiones que puede tenerademás de las conexiones que puede tener
con otros objetoscon otros objetos
Un objeto posee ComportamientoUn objeto posee Comportamiento
Lo que el objeto puede hacerLo que el objeto puede hacer
El comportamiento de un objeto determinaEl comportamiento de un objeto determina
cómo éste actúa y reacciona frente a lascómo éste actúa y reacciona frente a las
peticiones de otros objetospeticiones de otros objetos
Es modelado por un conjunto de mensajes aEs modelado por un conjunto de mensajes a
los que el objeto puede responderlos que el objeto puede responder
(operaciones que puede realizar)(operaciones que puede realizar)
Se implementa mediante métodosSe implementa mediante métodos
Un objeto posee IdentidadUn objeto posee Identidad
Cada objeto tiene una identidad única,Cada objeto tiene una identidad única,
incluso si su estado es idéntico al de otroincluso si su estado es idéntico al de otro
objetoobjeto
¿Qué es una Clase?¿Qué es una Clase?
Una clase es una descripción de un grupoUna clase es una descripción de un grupo
de objetos con: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 otrosLa misma forma de relacionarse con otros
objetos (relaciones)objetos (relaciones)
 Una semántica en común (significan lo mismo)Una semántica en común (significan lo 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 (simplificación)Suprime otras características (simplificación)
Un objeto es una instancia de una claseUn objeto es una instancia de una clase
Objetos y ClasesObjetos y Clases
Una clase es una definición abstracta de un objetoUna clase es una definición abstracta de un objeto
 Define la estructura y el comportamiento compartidosDefine la estructura y el comportamiento compartidos
por los objetospor los objetos
 Sirve como modelo para la creación de objetosSirve como modelo para la creación de objetos
Los objetos pueden ser agrupados en clasesLos objetos pueden ser agrupados en clases
Ejemplo de una ClaseEjemplo de una Clase
Clase: CursoClase: Curso
Estado (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ón
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
Modificadores de AccesoModificadores de Acceso
Permiten definir el nivel de accesoPermiten definir el nivel de acceso
(visibilidad) de los miembros (atributos o(visibilidad) de los miembros (atributos o
métodos) de una clasemétodos) de una clase
 Publico: Cualquier clase puede “ver” losPublico: Cualquier clase puede “ver” los
miembros públicos de otra clasemiembros públicos de otra clase
 Privado: Sólo la clase puede ver sus propiosPrivado: Sólo la clase puede ver sus propios
miembros privadosmiembros privados
Existen otros dos modificadores paraExisten otros dos modificadores para
propósitos específicos (Paquete, Protegido)propósitos específicos (Paquete, Protegido)
Temas a TratarTemas a Tratar
Paradigmas de ProgramaciónParadigmas de Programación
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
¿Qué es UML?¿Qué es UML?
““UML es un lenguaje visual para especificar,UML es un lenguaje visual para especificar,
construir y documentar sistemas” (OMG - Objectconstruir y documentar sistemas” (OMG - Object
Management Group)Management Group)
Unified (UNIFICADO):Unified (UNIFICADO):
 El aporte de muchos métodos y notacionesEl aporte de muchos métodos y notaciones
 Independiente de implementaciones, plataformas yIndependiente de implementaciones, plataformas y
lenguajeslenguajes
Modeling (MODELADO):Modeling (MODELADO):
 Los modelos son utilizados en todas las ingenieríasLos modelos son utilizados en todas las ingenierías
Language (LENGUAJE):Language (LENGUAJE):
 Si hay gente, requieren comunicarse. Si se tienen queSi hay gente, requieren comunicarse. Si se tienen que
comunicar, se tienen que entender. Para entendersecomunicar, se tienen que entender. Para entenderse
necesitan un lenguaje comúnnecesitan un lenguaje común
¡UML no es Metodología!¡UML no es Metodología!
Una Clase en UMLUna Clase en UML
Una clase está compuesta de tresUna clase está compuesta de tres
seccionessecciones
 La primera sección contiene el nombreLa primera sección contiene el nombre
de la clasede la clase
 La segunda sección muestra laLa segunda sección muestra la
estructura (atributos)estructura (atributos)
 La tercera sección muestra elLa tercera sección muestra el
comportamiento (operaciones)comportamiento (operaciones)
La segunda y la tercera secciónLa segunda y la tercera sección
pueden ser suprimidaspueden ser suprimidas
Modificadores de AccesoModificadores de Acceso
 Los miembros públicos se denotan conLos miembros públicos se denotan con
el signo “+”el signo “+”
 Los miembros privados se denotan conLos miembros privados se denotan con
el signo “–”el signo “–”
Temas a TratarTemas a Tratar
Paradigmas de ProgramaciónParadigmas de Programación
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos
RelacionesRelaciones
HerenciaHerencia
AbstracciónAbstracción
EncapsulamientoEncapsulamiento
AbstracciónAbstracción
Ignorancia SelectivaIgnorancia Selectiva
 La abstracción nos ayuda a trabajar con cosasLa abstracción nos ayuda a trabajar con cosas
complejascomplejas
 Se enfoca en lo importanteSe enfoca en lo importante
 Ignora lo que no es importante (simplifica)Ignora lo que no es importante (simplifica)
Una clase es una abstracción en la que:Una clase es una abstracción en la que:
 Se enfatizan las características relevantesSe enfatizan las características relevantes
 Se suprimen otras característicasSe suprimen otras características
Una clase debe capturar una y solo unaUna clase debe capturar una y solo una
abstracción claveabstracción clave
EncapsulamientoEncapsulamiento
Principio que establece que los atributosPrincipio que establece que los atributos
propios de un objeto no deben ser visiblespropios de un objeto no deben ser visibles
desde otros objetosdesde otros objetos
 Deben ser declarados como privadosDeben ser declarados como privados
Permite abstraer al resto del mundo de laPermite abstraer al resto del mundo de la
complejidad de la implementación internacomplejidad de la implementación interna
Permite exponer el estado del objeto sólo aPermite exponer el estado del objeto sólo a
través del comportamiento que le hayamostravés del comportamiento que le hayamos
definido mediante miembros públicosdefinido mediante miembros 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 yTodo sistema abarca muchas clases y
objetosobjetos
Los objetos contribuyen en elLos objetos contribuyen en el
comportamiento de un sistemacomportamiento de un sistema
colaborando entre sicolaborando entre si
 La colaboración se logra a través de lasLa colaboración se logra a través de las
relacionesrelaciones
Existen dos tipos principales de relacionesExisten dos tipos principales de relaciones
 AsociaciónAsociación
 AgregaciónAgregación
Relaciones de AsociaciónRelaciones de Asociación
Una asociación es una conexión entre dos clasesUna asociación es una conexión entre dos clases
que representa una comunicaciónque 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 queLa multiplicidad es el número de instancias que
participan en una asociaciónparticipan 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
Relaciones de AgregaciónRelaciones de Agregación
La agregación es una forma especial de asociaciónLa agregación es una forma especial de asociación
donde un todo se relaciona con sus partesdonde un todo se relaciona con sus partes
 También se conoce como “una parte de” o una relaciónTambién se conoce como “una parte de” o una relación
de contenciónde 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
HerenciaHerencia
Es una relación entre clasesEs una relación entre clases
en la cual una clase comparteen la cual una clase comparte
la estructura yla estructura y
comportamiento definido encomportamiento definido en
otra clase (Grady Booch)otra clase (Grady Booch)
Cada clase que hereda deCada clase que hereda de
otra posee:otra posee:
 Los atributos de la clase baseLos atributos de la clase base
además de los propiosademás de los propios
 Soporta todos o algunos de losSoporta todos o algunos de los
métodos de la clase basemétodos de la clase base
Una subclase hereda de unaUna subclase hereda de una
clase baseclase base
Clase BaseClase Base
Clases Derivadas oClases Derivadas o
subclasessubclases
HerenciaHerencia
Herencia “Es-Un”: herencia real, donde laHerencia “Es-Un”: herencia real, donde la
subclase es un tipo específico de lasubclase es un tipo específico de la
superclasesuperclase
 Un CuadradoUn Cuadrado es unes un RectánguloRectá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ón
Clases y ObjetosClases y Objetos
Modificadores de AccesoModificadores de Acceso
¿Qué es UML?¿Qué es UML?
Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos
Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
Interfaces (1/3)Interfaces (1/3)
Recurso de diseño soportado por losRecurso de diseño soportado por los
lenguajes orientados a objetos que permitelenguajes orientados a objetos que permite
definir comportamientodefinir comportamiento
Permite que clases que no estánPermite que clases que no están
estrechamente relacionadas entre sí debanestrechamente relacionadas entre sí deban
tener el mismo comportamientotener el mismo comportamiento
La implementación de una interfaz es unLa implementación de una interfaz es un
contrato que obliga a la clase a implementarcontrato que obliga a la clase a implementar
todos los métodos definidos en la interfaztodos los métodos definidos en la interfaz
Interfaces (2/3)Interfaces (2/3)
¿ De que clase heredaría la clase Hidroavión ?¿ De que clase heredaría la clase Hidroavión ?
Interfaces (3/3)Interfaces (3/3)
Se crean las interfaces que definenSe crean las interfaces que definen
comportamientocomportamiento
Hidroavión deberá definir losHidroavión deberá definir los
comportamientos de cada una de lascomportamientos de cada una de las
interfaces que implementeinterfaces que implemente
Es la propiedad que tienen los objetos deEs la propiedad que tienen los objetos de
permitir invocar genéricamente unpermitir invocar genéricamente un
comportamiento (método) cuyacomportamiento (método) cuya
implementación será delegada al objetoimplementación será delegada al objeto
correspondiente recién en tiempo decorrespondiente recién en tiempo de
ejecuciónejecución
El polimorfismo tiende a existir en lasEl polimorfismo tiende a existir en las
relaciones de herencia, pero no siempre esrelaciones de herencia, pero no siempre es
asíasí
PolimorfismoPolimorfismo
Polimorfismo - EjemploPolimorfismo - Ejemplo
La definición del método reside en la claseLa definición del método reside en la clase
basebase
La implementación del método reside en laLa implementación del método reside en la
clase derivadaclase derivada
La invocación es resuelta al momento deLa invocación es resuelta al momento de
ejecuciónejecución
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
Transporte
Avanzar
Frenar
© 2005 Micro$$oft. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Más contenido relacionado

La actualidad más candente

A Metamodelo for the integration of lexical resources in the Semantic Role La...
A Metamodelo for the integration of lexical resources in the Semantic Role La...A Metamodelo for the integration of lexical resources in the Semantic Role La...
A Metamodelo for the integration of lexical resources in the Semantic Role La...Grupo HULAT
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesSorey García
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1Clara Patricia Avella Ibañez
 
Tema 1 programación orientada a objetos por gio
Tema 1   programación orientada a objetos por gioTema 1   programación orientada a objetos por gio
Tema 1 programación orientada a objetos por gioRobert Wolf
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y ObjetosKudos S.A.S
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetosdesimartinez
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Servicio Tecnico de Computadoras
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetosDon Augusto
 
Tema2 conceptos de calidad en el modelado
Tema2   conceptos de calidad en el modeladoTema2   conceptos de calidad en el modelado
Tema2 conceptos de calidad en el modeladoAlvaro Loustau
 
Programacion
ProgramacionProgramacion
Programacionelizabeth
 
Tema2 modelo entidad relación
Tema2   modelo entidad relaciónTema2   modelo entidad relación
Tema2 modelo entidad relaciónAlvaro Loustau
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesstill01
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetospontifica
 

La actualidad más candente (19)

A Metamodelo for the integration of lexical resources in the Semantic Role La...
A Metamodelo for the integration of lexical resources in the Semantic Role La...A Metamodelo for the integration of lexical resources in the Semantic Role La...
A Metamodelo for the integration of lexical resources in the Semantic Role La...
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicos
 
Orientacion A Objetos Para Dummies
Orientacion A Objetos Para DummiesOrientacion A Objetos Para Dummies
Orientacion A Objetos Para Dummies
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Uml clase 04_uml_clases
Uml clase 04_uml_clasesUml clase 04_uml_clases
Uml clase 04_uml_clases
 
Pilares de la POO
Pilares de la POOPilares de la POO
Pilares de la POO
 
Tema 1 programación orientada a objetos por gio
Tema 1   programación orientada a objetos por gioTema 1   programación orientada a objetos por gio
Tema 1 programación orientada a objetos por gio
 
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a  Programación Orientada a Objetos (OOP): Clases y ObjetosIntroducción a  Programación Orientada a Objetos (OOP): Clases y Objetos
Introducción a Programación Orientada a Objetos (OOP): Clases y Objetos
 
6 Curso de POO en Java - clases y objetos
6  Curso de POO en Java - clases y objetos6  Curso de POO en Java - clases y objetos
6 Curso de POO en Java - clases y objetos
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)Unidad 1 Programación Orientada a Objetos (Programación III)
Unidad 1 Programación Orientada a Objetos (Programación III)
 
Programacion orientada-a-objetos
Programacion orientada-a-objetosProgramacion orientada-a-objetos
Programacion orientada-a-objetos
 
Tema2 conceptos de calidad en el modelado
Tema2   conceptos de calidad en el modeladoTema2   conceptos de calidad en el modelado
Tema2 conceptos de calidad en el modelado
 
Programacion
ProgramacionProgramacion
Programacion
 
Tema2 modelo entidad relación
Tema2   modelo entidad relaciónTema2   modelo entidad relación
Tema2 modelo entidad relación
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
POO sencillito
POO sencillitoPOO sencillito
POO sencillito
 

Similar a Introduccion orientaciona objetos

presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptjorgealfarol
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicosAny Saula
 
Unidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNUnidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNSergio Sanchez
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoEliseo Castro
 
Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Henry Ayala
 
diapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxdiapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxJamesHerberthBacaTel
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6Tonymx
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptdocmarcoantoniosotov
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptNachoTValverde
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptjhonJD1
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetosalexis armas
 

Similar a Introduccion orientaciona objetos (20)

Java OO: Introducción
Java OO: IntroducciónJava OO: Introducción
Java OO: Introducción
 
presentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGpptpresentacion-tema-i-unidad-ii.GFGFHFHGppt
presentacion-tema-i-unidad-ii.GFGFHFHGppt
 
Conceptos básicos
Conceptos básicosConceptos básicos
Conceptos básicos
 
Conceptos básicos
Conceptos básicos Conceptos básicos
Conceptos básicos
 
Introduccion a Uml
Introduccion a Uml Introduccion a Uml
Introduccion a Uml
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Intro oo2
Intro oo2Intro oo2
Intro oo2
 
Java
JavaJava
Java
 
Unidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióNUnidad 1 Mad IntroduccióN
Unidad 1 Mad IntroduccióN
 
Clases y Variables en Visual Basic .Net
Clases y Variables  en Visual Basic .NetClases y Variables  en Visual Basic .Net
Clases y Variables en Visual Basic .Net
 
UML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento UnificadoUML - Lenguaje de Modelamiento Unificado
UML - Lenguaje de Modelamiento Unificado
 
Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8Presentacion de-uml-formato-2-1227891304393749-8
Presentacion de-uml-formato-2-1227891304393749-8
 
diapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptxdiapositivas_basicas_sobre_la_notacion_uml.pptx
diapositivas_basicas_sobre_la_notacion_uml.pptx
 
C# para desarrolladores VB6
C# para desarrolladores VB6C# para desarrolladores VB6
C# para desarrolladores VB6
 
Introduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.pptIntroduccion Programación Orientada a Objetos.ppt
Introduccion Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programación Orientada a Objetos.ppt
Programación Orientada a Objetos.pptProgramación Orientada a Objetos.ppt
Programación Orientada a Objetos.ppt
 
Programacion orientada a objetos
Programacion orientada a objetosProgramacion orientada a objetos
Programacion orientada a objetos
 

Último

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 

Último (20)

definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 

Introduccion orientaciona objetos

  • 1. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 2. El mundo color de ObjetosEl mundo color de Objetos Todo el mundo está compuesto deTodo el mundo está compuesto de entidades que se relacionan e interactúanentidades que se relacionan e interactúan entre sientre si ¿Qué es un Objeto?¿Qué es un Objeto?  Todo es un Objeto ¡¿~?!Todo es un Objeto ¡¿~?! ¿Es lo mismo de siempre con otro nombre?¿Es lo mismo de siempre con otro nombre?  Pensar en Objetos ….Pensar en Objetos …. No es el último grito de la moda (1980s)No es el último grito de la moda (1980s)
  • 3. 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 negociosMuy apropiada para aplicaciones de negocios  Las empresas ahora sí aceptan la OOLas empresas ahora sí aceptan la OO  Las nuevas plataformas de desarrollo la hanLas nuevas plataformas de desarrollo la han adoptado (Java / .NET)adoptado (Java / .NET)
  • 4. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 5. ¿Qué es un Objeto?¿Qué es un Objeto? Informalmente, un objeto representa unaInformalmente, un objeto representa una entidad del mundo realentidad del mundo real Entidades FísicasEntidades Físicas  (Ej.:(Ej.: Vehículo, Casa, ProductoVehículo, Casa, Producto)) Entidades ConceptualesEntidades Conceptuales  (Ej.: Proceso Químico,(Ej.: Proceso Químico, Transacción BancariaTransacción Bancaria)) Entidades de SoftwareEntidades de Software  (Ej.: Lista Enlazada,(Ej.: Lista Enlazada, Interfaz GráficaInterfaz Gráfica))
  • 6. ¿Qué es un Objeto?¿Qué es un Objeto? Definición FormalDefinición Formal (Rumbaugh)(Rumbaugh)::  ““Un objeto es un concepto, abstracción o cosaUn objeto es un concepto, abstracción o cosa con un significado y límites claros en elcon un significado y límites claros en el problema en cuestión”problema en cuestión” Un objeto posee (Booch):Un objeto posee (Booch):  EstadoEstado  ComportamientoComportamiento  IdentidadIdentidad
  • 7. Un objeto posee EstadoUn objeto posee Estado Lo que el objeto sabeLo que el objeto sabe El estado de un objeto es una de lasEl estado de un objeto es una de las posibles condiciones en que el objeto puedeposibles condiciones en que el objeto puede existirexistir El estado normalmente cambia en elEl estado normalmente cambia en el transcurso del tiempotranscurso del tiempo El estado de un objeto es implementado porEl estado de un objeto es implementado por un conjunto de propiedades (atributos),un conjunto de propiedades (atributos), además de las conexiones que puede tenerademás de las conexiones que puede tener con otros objetoscon otros objetos
  • 8. Un objeto posee ComportamientoUn objeto posee Comportamiento Lo que el objeto puede hacerLo que el objeto puede hacer El comportamiento de un objeto determinaEl comportamiento de un objeto determina cómo éste actúa y reacciona frente a lascómo éste actúa y reacciona frente a las peticiones de otros objetospeticiones de otros objetos Es modelado por un conjunto de mensajes aEs modelado por un conjunto de mensajes a los que el objeto puede responderlos que el objeto puede responder (operaciones que puede realizar)(operaciones que puede realizar) Se implementa mediante métodosSe implementa mediante métodos
  • 9. Un objeto posee IdentidadUn objeto posee Identidad Cada objeto tiene una identidad única,Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otroincluso si su estado es idéntico al de otro objetoobjeto
  • 10. ¿Qué es una Clase?¿Qué es una Clase? Una clase es una descripción de un grupoUna clase es una descripción de un grupo de objetos con: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 otrosLa misma forma de relacionarse con otros objetos (relaciones)objetos (relaciones)  Una semántica en común (significan lo mismo)Una semántica en común (significan lo 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 (simplificación)Suprime otras características (simplificación) Un objeto es una instancia de una claseUn objeto es una instancia de una clase
  • 11. Objetos y ClasesObjetos y Clases Una clase es una definición abstracta de un objetoUna clase es una definición abstracta de un objeto  Define la estructura y el comportamiento compartidosDefine la estructura y el comportamiento compartidos por los objetospor los objetos  Sirve como modelo para la creación de objetosSirve como modelo para la creación de objetos Los objetos pueden ser agrupados en clasesLos objetos pueden ser agrupados en clases
  • 12. Ejemplo de una ClaseEjemplo de una Clase Clase: CursoClase: Curso Estado (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
  • 13. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 14. Modificadores de AccesoModificadores de Acceso Permiten definir el nivel de accesoPermiten definir el nivel de acceso (visibilidad) de los miembros (atributos o(visibilidad) de los miembros (atributos o métodos) de una clasemétodos) de una clase  Publico: Cualquier clase puede “ver” losPublico: Cualquier clase puede “ver” los miembros públicos de otra clasemiembros públicos de otra clase  Privado: Sólo la clase puede ver sus propiosPrivado: Sólo la clase puede ver sus propios miembros privadosmiembros privados Existen otros dos modificadores paraExisten otros dos modificadores para propósitos específicos (Paquete, Protegido)propósitos específicos (Paquete, Protegido)
  • 15. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 16. ¿Qué es UML?¿Qué es UML? ““UML es un lenguaje visual para especificar,UML es un lenguaje visual para especificar, construir y documentar sistemas” (OMG - Objectconstruir y documentar sistemas” (OMG - Object Management Group)Management Group) Unified (UNIFICADO):Unified (UNIFICADO):  El aporte de muchos métodos y notacionesEl aporte de muchos métodos y notaciones  Independiente de implementaciones, plataformas yIndependiente de implementaciones, plataformas y lenguajeslenguajes Modeling (MODELADO):Modeling (MODELADO):  Los modelos son utilizados en todas las ingenieríasLos modelos son utilizados en todas las ingenierías Language (LENGUAJE):Language (LENGUAJE):  Si hay gente, requieren comunicarse. Si se tienen queSi hay gente, requieren comunicarse. Si se tienen que comunicar, se tienen que entender. Para entendersecomunicar, se tienen que entender. Para entenderse necesitan un lenguaje comúnnecesitan un lenguaje común ¡UML no es Metodología!¡UML no es Metodología!
  • 17. Una Clase en UMLUna Clase en UML Una clase está compuesta de tresUna clase está compuesta de tres seccionessecciones  La primera sección contiene el nombreLa primera sección contiene el nombre de la clasede la clase  La segunda sección muestra laLa segunda sección muestra la estructura (atributos)estructura (atributos)  La tercera sección muestra elLa tercera sección muestra el comportamiento (operaciones)comportamiento (operaciones) La segunda y la tercera secciónLa segunda y la tercera sección pueden ser suprimidaspueden ser suprimidas Modificadores de AccesoModificadores de Acceso  Los miembros públicos se denotan conLos miembros públicos se denotan con el signo “+”el signo “+”  Los miembros privados se denotan conLos miembros privados se denotan con el signo “–”el signo “–”
  • 18. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 19. Pilares de la Orientación a ObjetosPilares de la Orientación a Objetos RelacionesRelaciones HerenciaHerencia AbstracciónAbstracción EncapsulamientoEncapsulamiento
  • 20. AbstracciónAbstracción Ignorancia SelectivaIgnorancia Selectiva  La abstracción nos ayuda a trabajar con cosasLa abstracción nos ayuda a trabajar con cosas complejascomplejas  Se enfoca en lo importanteSe enfoca en lo importante  Ignora lo que no es importante (simplifica)Ignora lo que no es importante (simplifica) Una clase es una abstracción en la que:Una clase es una abstracción en la que:  Se enfatizan las características relevantesSe enfatizan las características relevantes  Se suprimen otras característicasSe suprimen otras características Una clase debe capturar una y solo unaUna clase debe capturar una y solo una abstracción claveabstracción clave
  • 21. EncapsulamientoEncapsulamiento Principio que establece que los atributosPrincipio que establece que los atributos propios de un objeto no deben ser visiblespropios de un objeto no deben ser visibles desde otros objetosdesde otros objetos  Deben ser declarados como privadosDeben ser declarados como privados Permite abstraer al resto del mundo de laPermite abstraer al resto del mundo de la complejidad de la implementación internacomplejidad de la implementación interna Permite exponer el estado del objeto sólo aPermite exponer el estado del objeto sólo a través del comportamiento que le hayamostravés del comportamiento que le hayamos definido mediante miembros públicosdefinido mediante miembros 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
  • 22. RelacionesRelaciones Todo sistema abarca muchas clases yTodo sistema abarca muchas clases y objetosobjetos Los objetos contribuyen en elLos objetos contribuyen en el comportamiento de un sistemacomportamiento de un sistema colaborando entre sicolaborando entre si  La colaboración se logra a través de lasLa colaboración se logra a través de las relacionesrelaciones Existen dos tipos principales de relacionesExisten dos tipos principales de relaciones  AsociaciónAsociación  AgregaciónAgregación
  • 23. Relaciones de AsociaciónRelaciones de Asociación Una asociación es una conexión entre dos clasesUna asociación es una conexión entre dos clases que representa una comunicaciónque 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 queLa multiplicidad es el número de instancias que participan en una asociaciónparticipan 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
  • 24. Relaciones de AgregaciónRelaciones de Agregación La agregación es una forma especial de asociaciónLa agregación es una forma especial de asociación donde un todo se relaciona con sus partesdonde un todo se relaciona con sus partes  También se conoce como “una parte de” o una relaciónTambién se conoce como “una parte de” o una relación de contenciónde 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
  • 25. HerenciaHerencia Es una relación entre clasesEs una relación entre clases en la cual una clase comparteen la cual una clase comparte la estructura yla estructura y comportamiento definido encomportamiento definido en otra clase (Grady Booch)otra clase (Grady Booch) Cada clase que hereda deCada clase que hereda de otra posee:otra posee:  Los atributos de la clase baseLos atributos de la clase base además de los propiosademás de los propios  Soporta todos o algunos de losSoporta todos o algunos de los métodos de la clase basemétodos de la clase base Una subclase hereda de unaUna subclase hereda de una clase baseclase base Clase BaseClase Base Clases Derivadas oClases Derivadas o subclasessubclases
  • 26. HerenciaHerencia Herencia “Es-Un”: herencia real, donde laHerencia “Es-Un”: herencia real, donde la subclase es un tipo específico de lasubclase es un tipo específico de la superclasesuperclase  Un CuadradoUn Cuadrado es unes un RectánguloRectá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
  • 27. Temas a TratarTemas a Tratar Paradigmas de ProgramaciónParadigmas de Programación Clases y ObjetosClases y Objetos Modificadores de AccesoModificadores de Acceso ¿Qué es UML?¿Qué es UML? Principios de la Orientación a ObjetosPrincipios de la Orientación a Objetos Conceptos del Diseño Orientado a ObjetosConceptos del Diseño Orientado a Objetos
  • 28. Interfaces (1/3)Interfaces (1/3) Recurso de diseño soportado por losRecurso de diseño soportado por los lenguajes orientados a objetos que permitelenguajes orientados a objetos que permite definir comportamientodefinir comportamiento Permite que clases que no estánPermite que clases que no están estrechamente relacionadas entre sí debanestrechamente relacionadas entre sí deban tener el mismo comportamientotener el mismo comportamiento La implementación de una interfaz es unLa implementación de una interfaz es un contrato que obliga a la clase a implementarcontrato que obliga a la clase a implementar todos los métodos definidos en la interfaztodos los métodos definidos en la interfaz
  • 29. Interfaces (2/3)Interfaces (2/3) ¿ De que clase heredaría la clase Hidroavión ?¿ De que clase heredaría la clase Hidroavión ?
  • 30. Interfaces (3/3)Interfaces (3/3) Se crean las interfaces que definenSe crean las interfaces que definen comportamientocomportamiento Hidroavión deberá definir losHidroavión deberá definir los comportamientos de cada una de lascomportamientos de cada una de las interfaces que implementeinterfaces que implemente
  • 31. Es la propiedad que tienen los objetos deEs la propiedad que tienen los objetos de permitir invocar genéricamente unpermitir invocar genéricamente un comportamiento (método) cuyacomportamiento (método) cuya implementación será delegada al objetoimplementación será delegada al objeto correspondiente recién en tiempo decorrespondiente recién en tiempo de ejecuciónejecución El polimorfismo tiende a existir en lasEl polimorfismo tiende a existir en las relaciones de herencia, pero no siempre esrelaciones de herencia, pero no siempre es asíasí PolimorfismoPolimorfismo
  • 32. Polimorfismo - EjemploPolimorfismo - Ejemplo La definición del método reside en la claseLa definición del método reside en la clase basebase La implementación del método reside en laLa implementación del método reside en la clase derivadaclase derivada La invocación es resuelta al momento deLa invocación es resuelta al momento de ejecuciónejecución Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar Transporte Avanzar Frenar
  • 33. © 2005 Micro$$oft. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

Notas del editor

  1. A diferencia del paradigma estructurado, que propone modelar a la realidad como una serie de procedimientos secuenciales, la orientación a objetos propone representar todo lo que conocemos en términos de entidades (objetos) que interactúan y se relacionan entre sí. Estas entidades pueden representar absolutamente cualquier cosa, desde algo físico y tangible como una persona, una factura o un auto, hasta cosas intangibles como la imaginación, un proceso químico o un algoritmo matemático. La mayoría de los programadores que tienen conocimientos de paradigmas estructurados tienden a encarar la orientación a objetos como un agregado más a aquellos, o sólo como una forma ligeramente distinta de hacer lo mismo. Según iremos viendo a lo largo del curso, la realidad nos dicta que para ser buenos programadores orientados a objetos deberemos entender y modelar la realidad de una manera distinta.
  2. &amp;lt;number&amp;gt; En la actualidad, el paradigma de orientación a objetos es sin lugar a dudas el más utilizado por las empresas de todo el mundo a la hora de encarar desarrollos de aplicaciones de software, ya que permite representar de manera relativamente simple modelos y realidades muy complejas y esto hace que el software sea más fácil de programar, comprender y mantener. Por otra parte, luego de más de 20 años de investigación y desarrollo sobre Orientación a Objetos pareciera ser que la industria se ha dado cuenta que el paradigma está lo suficientemente maduro como para dar soporte a las aplicaciones más importantes del mundo actual.
  3. &amp;lt;number&amp;gt;
  4. &amp;lt;number&amp;gt; Según las definiciones formales de James Rumbaugh y Grady Booch (dos de las principales autoridades de la orientación a objetos en la actualidad, y coautores de UML, el lenguaje de modelado universal para objetos), un objeto es una abstracción de la realidad que tiene un significado concreto y claro para el problema que se está modelando. Un ejemplo de una entidad física representada como un objeto conceptual puede ser “Un Auto”. Ahora bien, todos los objetos tienen 3 características principales: Estado: representa la definición de atributos internos del objeto, sus características. Por ejemplo, un auto tiene un cierto número de puertas, un cierto número de ruedas, un volante, un motor, pedales, etc. Comportamiento: representa la definición del comportamiento del objeto, las acciones que éste puede realizar. Por ejemplo, un auto puede “arrancar”, “frenar”, “doblar”, “acelerar”, etc. Identidad: Cada objeto tiene una identidad única, incluso si su estado es idéntico al de otro objeto
  5. El concepto de identidad se refiere al hecho de que cada objeto es único en el mundo, por más que su conjunto de atributos y sus valores sean exactamente iguales a los de otros objetos. Por ejemplo, dos autos del mismo modelo, color, motor, salidos de la misma línea de producción el mismo día no dejan de ser dos autos diferentes, por más que su conjunto de atributos y sus valores sean iguales. La única posibilidad de que dos objetos sean iguales es que sean el mismo objeto.
  6. La forma más sencilla de entender el concepto de clase es si la vemos como una agrupación de objetos con características similares. Por ejemplo, un auto ES UN tipo particular de vehículo motorizado, con lo cual dentro de su comportamiento podemos encontrar “arrancar” y “frenar”, entre otros. Ahora bien, una motocicleta también ES UN vehículo motorizado, y tiene dentro de su comportamiento “arrancar” y “frenar”. El conjunto de atributos también es compartido entre una motocicleta y un automóvil, aunque sus valores no coincidan necesariamente. Por ejemplo, ambos tienen el atributo “cantidad de ruedas”, sólo que el auto tiene 4 y la motocicleta 2.
  7. Otra forma útil de ver una clase es como una plantilla, plano o molde de un conjunto de entidades a partir del cual se crearán luego instancias particulares (los objetos). La interacción de las entidades en el mundo real se produce entre objetos, no entre clases. Las clases no tienen “vida” en el mundo real, los objetos sí. Para poder interactuar con alguna clase deberemos crear una instancia particular de ella, con un conjunto de valores definidos para los atributos. A este proceso se lo conoce como “instanciación de un objeto”.
  8. Tanto para los atributos (estado) como para los métodos (comportamiento) de una clase puede configurarse el nivel de visibilidad o acceso que estos tendrán hacia el mundo exterior (otras clases que interactúen con ella). Los cuatro niveles de acceso más comunes que se pueden establecer a nivel de miembro de una clase son: Público: un miembro público puede ser accedido desde cualquier otra clase Privado: un miembro privado solamente puede ser accedido desde la clase en la que está declarado Protegido: un miembro protegido solamente puede ser accedido desde la clase en la que está declarado y desde las clases que hereden de ella (se verá el concepto de herencia más adelante en este curso) Paquete: un miembro de tipo paquete sólo podrá ser accedido desde las clases que estén en el mismo paquete lógico que la clase en la que está definido. En un entorno Microsoft .NET un ejemplo de paquete es una biblioteca .dll o un archivo ejecutable .exe.
  9. UML es un lenguaje visual de modelado y documentación de sistemas, tan utilizado en el mundo de desarrollo orientado a objetos que se ha convertido casi en un estándar “de facto”. A partir de está filmina, todos los diagramas que hagamos serán diagramas UML.
  10. &amp;lt;number&amp;gt; El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.
  11. &amp;lt;number&amp;gt; Otro de los pilares de la orientación a objetos es el encapsulamiento. Para entender este principio veamos un ejemplo práctico: Como todos ustedes se imaginarán, no es necesario ser mecánico de automóviles para poder manejar uno. Si el comprender cómo es el funcionamiento interno del motor, la dirección, los frenos, los cilindros, etc. fuera requisito para poder manejar un automóvil, serían muchos menos los conductores certificados y sería mucho más difícil aprender a manejar. Es más, si a cualquier automotriz se le ocurriera cambiar el funcionamiento interno de alguna de estas cosas, probablemente todos los conductores tendrían que volver a aprender como funciona el nuevo componente interno para poder seguir manejando sin problemas. Por suerte esto no es así, ya que la complejidad interna del funcionamiento de un automóvil está escondida de los conductores (usuarios). Para poder interactuar con el automóvil, éste nos expone una interfaz sencilla y definida, que no cambia nunca por más que cambien internamente el funcionamiento de sus componentes. Esta interfaz está compuesta por el volante, los pedales, la palanca de cambios, el asiento, etc. De esta forma decimos que el automóvil ha encapsulado su complejidad interna.
  12. &amp;lt;number&amp;gt;
  13. &amp;lt;number&amp;gt;
  14. &amp;lt;number&amp;gt;
  15. El propósito principal de la herencia es el de organizar mejor las clases que componen una determinada realidad, y poder agruparlas en función de atributos y comportamientos comunes a la vez que cada una se especializa según sus particularidades. Cabe aclarar además que hay dos tipos de herencias: Herencia Simple: una clase derivada puede heredar sólo de una clase base (los lenguajes .NET soportan este tipo de herencia) Herencia Múltiple: una clase derivada puede heredar de una o más clases base (C++ es un ejemplo de lenguaje que soporta este tipo de herencia).
  16. &amp;lt;number&amp;gt;
  17. &amp;lt;number&amp;gt; Suponiendo que estamos en un entorno donde sólo se soporta la herencia simple, ante la jerarquía de clases planteadas: ¿ De que clase heredaría la clase Hidroavión ? En teoría debería heredar tanto de Vehículo-Aéreo (ya que tiene atributos y comportamientos propios de un avión, como “cantidad de alas” y “despegar”) como de Vehículo-Acuático (ya que también tiene atributos y comportamientos propios de un barco, como por ejemplo “capacidad de flotación” y “navegar”). Ahora bien, como la herencia múltiple no se encuentra soportada según los parámetros del problema debemos buscar otra solución. Aquí es donde el concepto de interfaces se vuelve de gran utilidad.
  18. Una interfaz define un contrato de comportamientos que una clase debe cumplir al implementarla. Los comportamientos declarados en la interfaz no tienen cuerpo ni funcionalidad, son sólo “firmas” que las clases que implementen la interfaz deberán completar. De esta forma, si bien no podemos lograr que la clase derivada herede todos los atributos y comportamientos de su clase base, podemos al menos “obligar” a que implemente el conjunto de funcionalidades definidas en la interfaz. Una clase puede implementar tantas interfaces como desee, y una interfaz puede ser implementada por tantas clases como se desee.
  19. &amp;lt;number&amp;gt;
  20. &amp;lt;number&amp;gt; Aquí tenemos un ejemplo práctico de la implementación de polimorfismo en un diseño orientado a objetos. Por un lado tenemos la clase base “Transporte”, que posee los métodos “Avanzar” y “Frenar”. Por otro lado tenemos tres clases distintas derivadas de la clase “Transporte”, cada una de las cuales podrá sobrescribir la implementación de los métodos Avanzar y Frenar para que su comportamiento sea más específico. Ahora bien, como todas heredan de la misma clase base, las clases derivadas pueden ser tratadas genéricamente. Esto quiere decir que podríamos tener un array que almacene objetos de tipo Transporte, y recorrerlo luego para llamar al método “Avanzar” de cada uno. De esta forma, en tiempo de codificación es imposible saber a qué método “Avanzar” se está llamando en realidad (al del Auto? Al del caballo? Al del transbordador?), sino que esta decisión es tomada en tiempo de ejecución en base al tipo particular de objeto que esté instanciado. En pseudocódigo, esto se escribiría de la siguiente manera: Definir arrayTransportes (3) de tipo Transporte arrayTransportes(1) = nuevo Automóvil() //Un automóvil ES UN TIPO DE transporte arrayTransportes(2) = nuevo Transbordador() //Un Transbordador ES UN TIPO DE transporte arrayTransportes(3) = nuevo Caballo() //Un Caballo ES UN TIPO DE transporte Por Cada (Transporte t en arrayTransportes) t.Avanzar() t.Frenar() Fin