SlideShare una empresa de Scribd logo
1 de 90
Descargar para leer sin conexión
Programación II
Ing. Mauricio Paletta, Msc
Presentación
Fundamentos de la Orientación a Objetos
UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA
INGENIERÍA EN INFORMÁTICA
Programación II
Programación II
Fundamentos de la Orientación a Objetos
ABSTRACCION TIPOS
MODULARIDAD CONCURRENCIA
ENCAPSULAMIEN. PERSISTENCIA
JERARQUIA POLIMORFISMO
PRINCIPIOS
HERENCIAOBJETO CLASE
ENLACE
DINAMICO
MECANISMOS BASICOS
TERMINOS TECNICOS
Programación II
Principios de la Orientación a Objetos
Abstracción
Programación II
Principios de la Orientación a Objetos
Abstracción
• Capacidad de adquirir conceptos (idea
particular o lo que vemos y comprendemos
del mundo), construir jerarquías de
generalizaciones y componer objetos
mediante la configuración de otros.
• Es el acto o resultado de eliminar
diferencias entre los objetos, de modo que
podamos ver los aspectos comunes.
Programación II
Principios de la Orientación a Objetos
Abstracción
• Es una forma de manejar la complejidad
de los objetos.
• Enfatizar sobre los detalles importantes y
olvidar los aspectos no relevantes desde
perspectiva del usuario.
• Permite separar el comportamiento
esencial de un objeto de su
implementación.
Programación II
Principios de la Orientación a Objetos
Abstracción
• Se implementa
mediante
la identificación
de clases.
Programación II
Encapsulamiento
Principios de la Orientación a Objetos
Programación II
• Esconder todos los detalles de un objeto
que no contribuyen al entendimiento de
sus características esenciales.
Información escondida.
• Se refiere a incluir dentro de un objeto
todo lo que éste necesita y hacerlo de
forma tal que ningún otro objeto vea su
estructura interna.
Principios de la Orientación a Objetos
Encapsulamiento
Programación II
• Permite realizar cambios a los programas
con poco esfuerzo.
• La idea principal es proteger los datos de
un objeto del uso arbitrario.
• Se implementa mediante la interfaz de los
elementos que definen una clase.
Principios de la Orientación a Objetos
Encapsulamiento
Programación II
Modularidad
Principios de la Orientación a Objetos
Programación II
• Descomponer un sistema en un conjunto
de unidades discretas.
• Está asociado al concepto de
programación modular / estructurada.
• Permite empaquetar la abstracción en
pequeñas unidades.
• Está íntimamente relacionado con el
encapsulamiento.
Principios de la Orientación a Objetos
Modularidad
Programación II
• Los módulos son generalmente unidades
indivisibles.
• 5 criterios, 5 reglas y 5 principios.
• Se implementa mediante la instanciación
de objetos, la identificación de relaciones
entre clases y cómo éstas, en conjunto,
resuelven el problema tratado.
Principios de la Orientación a Objetos
Modularidad
Programación II
Criterio 1 - Descomposición modular:
Descomponer el problema de software en un
pequeño número de sub-problemas menos
complejos, interconectados mediante una
estructura sencilla y suficientemente independien-
tes para permitir que el trabajo futuro pueda
proseguir por separado en cada una de ellos.
Ejemplo: diseño top-down
Contraejemplo: inicialización global
Principios de la Orientación a Objetos
Modularidad
Programación II
Criterio 2 - Composición modular:
Favorece la producción de elementos que se
pueden combinar libremente unos con otros para
producir nuevos sistemas, posiblemente en un
entorno bastante diferente de aquél en que
fueron desarrollados inicialmente.
Ejemplo: biblioteca de subprogramas
Contraejemplo: uso de preprocesadores
Principios de la Orientación a Objetos
Modularidad
Programación II
Criterio 3 - Comprensibilidad modular:
Ayuda a producir software en el cual un lector
humano puede entender cada módulo sin tener
que conocer los otros.
Ejemplo: biblioteca de subprogramas de
índole específico
Contraejemplo: dependencias secuenciales
Principios de la Orientación a Objetos
Modularidad
Programación II
Criterio 4 - Continuidad modular:
Un pequeño cambio en la especificación de un
problema provoca sólo cambios en un solo
módulo o en un pequeño número de módulos.
Ejemplo: constantes simbólicas
Contraejemplo: estructuras estáticas
Principios de la Orientación a Objetos
Modularidad
Programación II
Criterio 5 - Protección modular:
Produce arquitecturas en las cuales el efecto de
una situación anormal que se da dentro de un
módulo durante su ejecución, queda confinado a
dicho módulo o en el peor caso, se propaga sólo
a unos módulos vecinos.
Ejemplo: verificación de los datos de entrada
en su origen
Contraejemplo: excepciones indisciplinadas
Principios de la Orientación a Objetos
Modularidad
Programación II
Regla 1 – Correspondencia directa:
La estructura modular obtenida en el proceso de
construcción de software debe seguir siendo
compatible con cualquier otra estructura modular
obtenida en el proceso de modelado del dominio
del problema.
Principios de la Orientación a Objetos
Modularidad
Programación II
Regla 2 – Pocas interfaces:
Cada módulo debe comunicarse con el menor
número de módulos posible.
Principios de la Orientación a Objetos
Modularidad
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 3 – Pequeñas interfaces:
Si dos módulos se comunican deben intercambiar
la menor información posible.
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 4 – Interfaces explícitas:
Siempre que dos módulos A y B se comuniquen,
esto debe ser obvio a partir del contexto de A, de
B o de ambos.
Programación II
Principios de la Orientación a Objetos
Modularidad
Regla 5 – Ocultamiento de información:
Cada módulo debe tener seleccionada un
subconjunto de propiedades como información
oficial del módulo para ponerla a disposición de
otros módulos.
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 1 – Unidades modulares
lingüísticas:
Los módulos deben corresponderse con las
unidades sintácticas en el lenguaje utilizado.
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 2 – Auto-documentación:
Toda la información relativa a un módulo debe
formar parte del mismo módulo.
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 3 – Acceso uniforme:
Todos los servicios ofrecidos por un módulo
deben estar disponibles a través de una
notificación uniforme sin importar la forma como
están implementados.
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 4 – Abierto / Cerrado:
Los módulos deben ser a la vez abiertos y
cerrados.
Abierto disponible para ser extendido.
Cerrado disponible para ser usado por
otros módulos.
Programación II
Principios de la Orientación a Objetos
Modularidad
Principio 5 – Elección única:
Siempre que un sistema de software deba admitir
un conjunto de alternativas, habrá un módulo del
sistema (y sólo uno) que conozca su lista
completa.
Programación II
Jerarquía
Principios de la Orientación a Objetos
Programación II
Jerarquía
• Es el acto o resultado de distinguir un
concepto que es más general que otro.
• Permite examinar si los conceptos tienen
algo en común.
• Nos ayuda a percibir que todas las
instancias de un concepto más específico
son también instancias de un concepto
general.
Principios de la Orientación a Objetos
Programación II
Jerarquía
• Permite empaquetar la abstracción en
pequeñas unidades.
• Representa la organización de una
abstracción.
• Su uso simplifica el entendimiento del
problema.
• Se implementa mediante las relaciones de
herencia y agregación entre clases.
Principios de la Orientación a Objetos
Programación II
Tipos
Principios de la Orientación a Objetos
Programación II
Tipos
• Permite agrupar o formar un conjunto de
objetos con características o
comportamientos similares.
• Dos cosas que tienen la misma forma
abstracta son análogas => son del mismo
tipo.
Principios de la Orientación a Objetos
Programación II
Tipos
• Se implementa mediante la descripción o
identificación de los elementos que
describen una clase:
datos /
información atributos
operaciones /
comportamiento métodos
Principios de la Orientación a Objetos
Programación II
Concurrencia
Principios de la Orientación a Objetos
Programación II
Concurrencia
• Es la propiedad que distingue un objeto
activo de uno que no lo es.
• Permite a diferentes objetos actuar al
mismo tiempo; cada uno de ellos tiene
autonomía.
Principios de la Orientación a Objetos
Programación II
Concurrencia
• Se implementa mediante el proceso de
creación o instanciación de objetos a
partir de su clase y las propiedades de
identidad y estado de los objetos:
clase definición / tipología del
concepto
objeto instancia / ocurrencia
cualquiera del concepto
Principios de la Orientación a Objetos
Programación II
Persistencia
Principios de la Orientación a Objetos
Programación II
Persistencia
• Es la propiedad que un objeto tiene de
existir en el tiempo y en el espacio.
• Un objeto existe hasta que no sea más
necesitado y el espacio que ocupa es
reutilizado.
Principios de la Orientación a Objetos
Programación II
Persistencia
• Tanto la necesidad de espacio para
almacenar el objeto como su recupera-
ción, involucran a los dependientes
(objetos relacionados) de dicho objeto.
• Se implementa mediante los procesos de
construcción y destrucción de los objetos
definidos como parte del comportamiento
de la clase.
Principios de la Orientación a Objetos
Programación II
Polimorfismo
Principios de la Orientación a Objetos
Programación II
• Es el fenómeno mediante el cual una
operación adopta varias formas de
implementación.
• Habilidad para usar el mismo símbolo
para propósitos diferentes cuando el
contexto es claro.
Principios de la Orientación a Objetos
Polimorfismo
Programación II
• Para el usuario, la visión del operador es
una sola, el objeto se encarga de decidir
qué hacer; los detalles de implementación
quedan ocultos.
• Dos operaciones completamente
diferentes comparten el mismo nombre.
Principios de la Orientación a Objetos
Polimorfismo
Programación II
• Ventajas: extensibilidad, código compacto,
claridad.
• Se implementa mediante la sobrecarga de
funciones y operadores.
Principios de la Orientación a Objetos
Polimorfismo
Programación II
Una abstracción simple sirve
Coacción como diferentes tipos mediante
una conversión de tipos implícita
• Específico
Un identificador simple denota
Sobrecarga muchas abstracciones
Por parámetro Una abstracción opera uniforme-
mente a través de diferentes tipos
• Universal
Por inclusión Una abstracción opera a través de
una relación de inclusión
Principios de la Orientación a Objetos
Polimorfismo
Programación II
Enlace Dinámico
Términos Técnicos
Programación II
• Enlace: conectar una llamada de función
al cuerpo de la función; enlace estático o
temprano: se lleva a cabo antes de que el
programa se ejecute; enlace dinámico
posterior: ocurre en tiempo de ejecución.
• Representa uno de los mayores avances
de la Orientación a Objetos y es una
propiedad común (no necesaria) de los
lenguajes orientados a objetos.
Términos Técnicos
Enlace Dinámico
Programación II
• Es un elemento necesario para poder
realizar el polimorfismo.
• Para su implementación, debe existir un
mecanismo que determine el tipo de
objeto en tiempo de ejecución y haga la
llamada a la función apropiada.
Términos Técnicos
Enlace Dinámico
Programación II
enlace estático
enlace dinámico
vs
Términos Técnicos
Enlace Dinámico
Programación II
Objeto
Mecanismos básicos
Programación II
• Son las unidades básicas de
construcción, para conceptualización,
diseño o programación.
• Son instancias organizadas en clases con
características comunes.
Mecanismos básicos
Objeto
Programación II
• Desde la perspectiva de un programa, los
objetos son módulos que contienen datos
(atributos) y las instrucciones u
operaciones (métodos) que operan sobre
esos datos y trabajan juntos para proveer
funcionalidad.
Mecanismos básicos
Objeto
Programación II
• La habilidad para reconocer objetos es
una herramienta que los humanos
aprenden desde muy temprana edad.
• 3 características: estado, identidad y
comportamiento.
Mecanismos básicos
Objeto
Programación II
Fórmula conceptual:
Objeto = Atributos + Métodos
Mecanismos básicos
Objeto
Programación II
Mecanismos básicos
Objeto
Atributo
Método
Mensaje
Módulo /
Paquete
Programación II
Objeto - Estado
• Contiene todas las propiedades
(usualmente estáticas), además de los
valores actuales de estas propiedades
(usualmente dinámicas).
• Hace que cada objeto sea único.
• La respuesta que un objeto puede dar,
luego de la llamada de un mensaje,
depende de su estado actual.
Mecanismos básicos
Programación II
Objeto - Estado
• Determina cómo son los nodos en un
diagrama de transición de estados del
objeto.
• Nota: principio de persistencia.
• Ejemplos: color – rojo; peso – 75.4; edad
– 24; número de ítems – 190; profesión –
“Arquitecto”.
Mecanismos básicos
Programación II
Objeto - Identidad
• Distingue a un objeto del resto.
• Es independiente del estado.
• Se conserva durante toda la vida del
objeto, aún cuando se realicen cambios
de estado.
• Es la base para construir / armar un
mensaje hacia el objeto correspondiente.
Mecanismos básicos
Programación II
Objeto - Identidad
• Es una propiedad muy importante para
las Bases de Datos Orientadas a Objetos
(OODB).
• Nota: principio de concurrencia.
• Ejemplos: X1, X2, MiVentana,
MauricioPaletta.
Mecanismos básicos
Programación II
Objeto - Comportamiento
• Indica la forma como el objeto actúa y
reacciona en término de los cambios de
estado.
• Está totalmente definido por sus acciones
u operaciones.
• 2 conceptos importantes: método y
mensaje.
Mecanismos básicos
Programación II
Objeto - Comportamiento
• Nota: principios de encapsulamiento y
polimorfismo.
• Ejemplos: ObtenerValor, AsignarValor,
Agregar, Quitar, Sumar.
Mecanismos básicos
Programación II
Objeto - Comportamiento
Método:
Procedimiento que reside en el objeto y
determinan cómo éste actuará cuando
reciba un mensaje. Su ejecución puede
cambiar el estado del objeto, crear objetos
nuevos, enviar mensajes a otros objetos,
etc.
Mecanismos básicos
Programación II
Objeto - Comportamiento
Mensaje:
Canal de comunicación que usan los
objetos para ejecutar acciones. Sólo
cuando se recibe un mensaje, el objeto
ejecuta una acción. Todo proceso es
activado por mensajes entre objetos.
Mecanismos básicos
Programación II
Objeto - Comportamiento
Mensajes
Atributos
Métodos
Asignar / Set
Obtener / Get
(Atributos)
Mecanismos básicos
Programación II
Objeto - Comportamiento
Mensaje = Identidad del Objeto + Método +
Parámetros
Mecanismos básicos
Fórmula conceptual:
Programación II
Objeto - Comportamiento
Es el conjunto de mensajes a los cuales
un objeto responde o puede responder.
Nótese que no necesariamente es igual
al conjunto de métodos del objeto
(encapsulamiento y polimorfismo).
Mecanismos básicos
Protocolo del Objeto:
Programación II
Clase
Mecanismos básicos
Programación II
Clase
• Define la estructura y el comportamiento
de una forma abstracta o concepto para
darle vida a los objetos.
• Es un patrón (plantilla) que define los
atributos y métodos a ser incluidos es un
tipo particular de objeto.
• Se dice que un objeto es una instancia
particular de una clase.
Mecanismos básicos
Programación II
Clase
• Consta de dos partes: una declaración y
una implementación. La declaración lista
o identifica los miembros de la clase
(atributos y métodos). La implementación
define el cuerpo de los métodos de la
clase.
Mecanismos básicos
Programación II
Clase
• Nota: principios de abstracción, jerarquía,
modularidad y tipos.
• Nota: principio de encapsulamiento –
interfaz de la clase.
Mecanismos básicos
Programación II
Clase - interfaz
• Determina la forma en la cual los
elementos de la clase (atributos y
métodos) pueden o no ser usados (son
visibles) por cada uno de los tres tipos
diferentes de usuarios:
· Elementos de la misma clase.
· Elementos de clases relacionadas (herencia).
· Otros elementos externos.
Mecanismos básicos
Programación II
Clase - interfaz
• Tres niveles de interfaz:
Mecanismos básicos
Privada Visibilidad sólo para la
misma clase
Protegida Visibilidad para la misma
clase y clases relacionadas
Pública Visibilidad para cualquiera
Programación II
PUBLICA
Otros usuarios externos
PROTEGIDA
Clases relacionadas
Clase - interfaz
PRIVADA
Clase actual
Mecanismos básicos
Programación II
Clase - relaciones
• Basado en el principio de jerarquía, para
la definición de una clase nueva se
pueden usar clases existentes, ya sea
incorporando un objeto como atributo de
la clase (agregación) o estableciendo una
generalización (herencia).
Mecanismos básicos
Programación II
Clase - relaciones
Para dos clases A y B:
A es una agregación de B si y sólo si
(B contiene a A)
A forma parte de B
A hereda de B si y sólo si
(B es una generalización de A)
A es un caso particular de B
Mecanismos básicos
Programación II
Clase – relaciones (ejemplo)
-Capacidad
-Longitud
Aeronave
-# Turbinas
-Modelo
Avión
-# Motores
-Tipo Motor
-Autonomía
Avioneta
-Diámetro Hélice
-Tipo Motor
Helicóptero
Aeropuerto
Torre
-Número
Puerta
-Número
-Estado
Plataforma
-Número
-Estado
Hangar
-Número
-Tipo
Pista
1
1
1
1..*
11..*
1
1..*
1
1..*
*
-Comunica con
1
1..*
-Embarque / Desembarque
1
1..*
-Aterriza / Despega
1..*
1..* -Usa
1..*
1..*
-Aterriza / Despega
1..*
1..*
-Aterriza / Despega
1..*
Mecanismos básicos
Programación II
Herencia
Mecanismos básicos
Programación II
Herencia
• Permite crear clases nuevas a partir de
clases ya existentes, estableciendo
niveles de jerarquía y programando sólo
las diferencias.
• Permite refinar las estructuras sin
necesidad de duplicar información.
Mecanismos básicos
Programación II
Herencia
• La clase nueva (jerarquía inferior) es
conocida como subclase o clase derivada
y la clase de mayor nivel se denomina
superclase o clase base.
• Según el número de clases base, puede
ser de dos tipos: simple (una sola clase
base) y múltiple (mas de una clase base).
Mecanismos básicos
Programación II
Herencia - ejemplo
Generalización
Especialización
Mecanismos básicos
Programación II
Herencia
Clase Derivada = Clases Base +
Otros Elementos
Mecanismos básicos
Fórmula conceptual:
Programación II
Herencia
Nota: Si el identificador de un método o
atributo de una clase cualquiera es similar
a alguno de los elementos de una posible
clase base, cualquier referencia a este
identificador estará asociado al elemento
de la clase derivada, a menos que se
indique lo contrario.
Mecanismos básicos
Programación II
Herencia
Nota: Cuando un objeto recibe un mensaje
que contiene un método que no está
definido en su clase, se busca
automáticamente hacia arriba en su
jerarquía de clases. Igual ocurre al
acceder a un atributo del objeto.
Mecanismos básicos
Programación II
Herencia – clase abstracta
Mecanismos básicos
• Clases cuya descripción es incompleta.
• Sólo sirven para ser usadas como clases
bases en una relación de herencia.
• En términos de diseño, son útiles para
permitir a un usuario refinar o
particularizar un concepto.
Programación II
Herencia – clase abstracta
Mecanismos básicos
• No es posible o no tiene sentido instanciar
objetos con ellas.
• Por lo general contienen uno o más
métodos virtuales.
Programación II
Herencia – clase abstracta
Nota: Aunque pueden haber métodos
genéricos definidos en algún nivel de la
jerarquía de clases, no está prohibido que
existan definiciones específicas o
detalladas en los niveles inferiores. En
este caso, ambos métodos pueden ser
usados (como si fuera un polimorfismo),
siempre y cuando no se trate de la
redefinición de un método virtual.
Mecanismos básicos
Programación II
Herencia – clase abstracta
Mecanismos básicos
Programación II
Herencia –método virtual
Mecanismos básicos
• Pertenece a una clase abstracta.
• Debe ser obligatoriamente redefinido en
las clases derivadas.
• Puede verse como una indicación a los
usuarios de la clase base, que parte del
trabajo a realizar en la clase derivada, es
definir estos métodos a fin de que se
complete el comportamiento del concepto.
Programación II
Herencia –método virtual
Mecanismos básicos
• Su uso tiene implicaciones en los
espacios de memoria ocupados por los
objetos instanciados.
Programación II
Herencia –método virtual
Nota: Un método no virtual de una clase
base y otro similar (polimórfico) de la
clase derivada ocupan ambos espacios
de memoria independientes. En un
método virtual sólo se tiene el espacio de
memoria ocupado por la redefinición en la
clase derivada.
Mecanismos básicos
Programación II
Herencia – interfaz
• Permite determinar qué criterio de interfaz
(público, privado ó protegido) se va a usar
para los usuarios de la clase derivada con
los elementos públicos de la clase base.
Mecanismos básicos

Más contenido relacionado

La actualidad más candente

Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de ClasesAdal Dg
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)programadorjavablog
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendidoGalo Anzules
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetoshector_h30
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetosCirino Silva tovar
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaAngeles Rivera
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patronesMarvin Zumbado
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clasesjmachado614
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoFYaskelly Yedra
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño Ikaolong
 

La actualidad más candente (20)

Metodologiasad 1
Metodologiasad 1Metodologiasad 1
Metodologiasad 1
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)Patrones de diseño(presentación 7)
Patrones de diseño(presentación 7)
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
3. modelo entidad relación extendido
3. modelo entidad relación extendido3. modelo entidad relación extendido
3. modelo entidad relación extendido
 
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A ObjetosMetodologías Para AnáLisis Y DiseñO Orientado A Objetos
Metodologías Para AnáLisis Y DiseñO Orientado A Objetos
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos1.1 elementos en el paradigma orientado a objetos
1.1 elementos en el paradigma orientado a objetos
 
Unidad1 y 2
Unidad1 y 2Unidad1 y 2
Unidad1 y 2
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Tabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructuradaTabla comparativa de poo y paradigma de programación estructurada
Tabla comparativa de poo y paradigma de programación estructurada
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Desarrollo basado en patrones
Desarrollo basado en patronesDesarrollo basado en patrones
Desarrollo basado en patrones
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Hilos En Java
Hilos En JavaHilos En Java
Hilos En Java
 
Patrones de diseño de GoF
Patrones de diseño de GoFPatrones de diseño de GoF
Patrones de diseño de GoF
 
10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes10.el diseño en el nivel de componentes
10.el diseño en el nivel de componentes
 
Patrones de diseño I
Patrones de diseño IPatrones de diseño I
Patrones de diseño I
 
Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 

Destacado

Principios Basicos Del Poo
Principios Basicos Del PooPrincipios Basicos Del Poo
Principios Basicos Del Pooguido conto
 
Uso de BlueJ
Uso de BlueJUso de BlueJ
Uso de BlueJanaclos
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoActimel
 
5 estructura interna de un objeto
5  estructura interna de un objeto5  estructura interna de un objeto
5 estructura interna de un objetozeta2015
 
9 anulacion
9   anulacion9   anulacion
9 anulacionzeta2015
 
Modelos de alta disponibilidad
Modelos de alta disponibilidadModelos de alta disponibilidad
Modelos de alta disponibilidadDavid Herrero
 
Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Hack '
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraAgustin Ramos
 
Mecanismo y circuito
Mecanismo y circuitoMecanismo y circuito
Mecanismo y circuitodalumna8b
 
Mecanismo y circuito
Mecanismo y circuitoMecanismo y circuito
Mecanismo y circuitoAbiitaa-chan
 
Mecanismo y Circuito
Mecanismo y CircuitoMecanismo y Circuito
Mecanismo y Circuitoalumnaaaa
 
El mecanismo y el circuito
El mecanismo y el circuitoEl mecanismo y el circuito
El mecanismo y el circuitojongkey401
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDLbdatos
 
Mecanismo y circuito scarlett
Mecanismo y circuito scarlettMecanismo y circuito scarlett
Mecanismo y circuito scarlettScarlett B'elen
 
Proyecto Sistema Recursos Humanos
Proyecto Sistema Recursos HumanosProyecto Sistema Recursos Humanos
Proyecto Sistema Recursos HumanosOscar Arrua
 

Destacado (20)

Principios Basicos Del Poo
Principios Basicos Del PooPrincipios Basicos Del Poo
Principios Basicos Del Poo
 
Uso de BlueJ
Uso de BlueJUso de BlueJ
Uso de BlueJ
 
POO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y PolimorfismoPOO: Herencia, Abstraccion y Polimorfismo
POO: Herencia, Abstraccion y Polimorfismo
 
Tecnologia orientado a objetos
Tecnologia orientado a objetosTecnologia orientado a objetos
Tecnologia orientado a objetos
 
5 estructura interna de un objeto
5  estructura interna de un objeto5  estructura interna de un objeto
5 estructura interna de un objeto
 
9 anulacion
9   anulacion9   anulacion
9 anulacion
 
Modelos de alta disponibilidad
Modelos de alta disponibilidadModelos de alta disponibilidad
Modelos de alta disponibilidad
 
Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]Programación orientada a objetos (POO) [JAVA]
Programación orientada a objetos (POO) [JAVA]
 
Terminologia de la POO
Terminologia de la POOTerminologia de la POO
Terminologia de la POO
 
Modularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidraModularización efectiva - domando a la hidra
Modularización efectiva - domando a la hidra
 
Mecanismo Y Circuito
Mecanismo Y CircuitoMecanismo Y Circuito
Mecanismo Y Circuito
 
Mecanismo y circuito
Mecanismo y circuitoMecanismo y circuito
Mecanismo y circuito
 
Mecanismo y circuito
Mecanismo y circuitoMecanismo y circuito
Mecanismo y circuito
 
Mecanismo y Circuito
Mecanismo y CircuitoMecanismo y Circuito
Mecanismo y Circuito
 
El mecanismo y el circuito
El mecanismo y el circuitoEl mecanismo y el circuito
El mecanismo y el circuito
 
SQL-DDL
SQL-DDLSQL-DDL
SQL-DDL
 
Mapa mental de la POO
Mapa mental de la POOMapa mental de la POO
Mapa mental de la POO
 
Mecanismo y circuito scarlett
Mecanismo y circuito scarlettMecanismo y circuito scarlett
Mecanismo y circuito scarlett
 
Proyecto Sistema Recursos Humanos
Proyecto Sistema Recursos HumanosProyecto Sistema Recursos Humanos
Proyecto Sistema Recursos Humanos
 
Mecanismos y Circuitos
Mecanismos y Circuitos Mecanismos y Circuitos
Mecanismos y Circuitos
 

Similar a Principios orientacion-objetos

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetosedwinlemmon
 
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...Conalep Puebla III
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetosTAPIA SILVA EVELINA
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1cesarmrl2
 
Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++ratasquerosaXX
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevjtk1
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion pooRicardo Garcia
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POOgueritamala
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..jasped
 
Apuntes unidad uno poo
Apuntes unidad uno pooApuntes unidad uno poo
Apuntes unidad uno pookarina NAVA
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1Scott Chavez
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .netcampus party
 
Taller campus party
Taller campus partyTaller campus party
Taller campus partycampus party
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2warmab
 

Similar a Principios orientacion-objetos (20)

03 -fundamentos_de_la_tecnologia_orientada_a_objetos
03  -fundamentos_de_la_tecnologia_orientada_a_objetos03  -fundamentos_de_la_tecnologia_orientada_a_objetos
03 -fundamentos_de_la_tecnologia_orientada_a_objetos
 
Fundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a ObjetosFundamentos de la Tecnologia Orientada a Objetos
Fundamentos de la Tecnologia Orientada a Objetos
 
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...
Upmp programación orientada a objetos-sesión 2-conceptos básicos del paradigm...
 
Programación orientada-a-objetos
Programación orientada-a-objetosProgramación orientada-a-objetos
Programación orientada-a-objetos
 
Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1Fundamentos De ProgramacióN Unidad 1
Fundamentos De ProgramacióN Unidad 1
 
Anon metodologia de la programacion orientada a objetos con c++
Anon   metodologia de la programacion orientada a objetos con c++Anon   metodologia de la programacion orientada a objetos con c++
Anon metodologia de la programacion orientada a objetos con c++
 
Miko
MikoMiko
Miko
 
Metodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prevMetodología de la programación orientada a objetos con c++ prev
Metodología de la programación orientada a objetos con c++ prev
 
Asignación 1 astrid c.
Asignación 1 astrid c.Asignación 1 astrid c.
Asignación 1 astrid c.
 
Unidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POOUnidad 1. Introducción. Conceptos fundamentales de la POO
Unidad 1. Introducción. Conceptos fundamentales de la POO
 
Fundamentos programacion poo
Fundamentos programacion pooFundamentos programacion poo
Fundamentos programacion poo
 
Fundamentos de POO
Fundamentos de POOFundamentos de POO
Fundamentos de POO
 
Diseño+de..
Diseño+de..Diseño+de..
Diseño+de..
 
Apuntes unidad uno poo
Apuntes unidad uno pooApuntes unidad uno poo
Apuntes unidad uno poo
 
Próximos CURSOS.ppsx
Próximos CURSOS.ppsxPróximos CURSOS.ppsx
Próximos CURSOS.ppsx
 
Curso de Java Intermedio
Curso de Java IntermedioCurso de Java Intermedio
Curso de Java Intermedio
 
Programacion orientada objetos-1
Programacion orientada objetos-1Programacion orientada objetos-1
Programacion orientada objetos-1
 
Taller campus party .net
Taller campus party .netTaller campus party .net
Taller campus party .net
 
Taller campus party
Taller campus partyTaller campus party
Taller campus party
 
Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2Presentacion De La Primera Unidad 2
Presentacion De La Primera Unidad 2
 

Más de karlalopezbello

02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetoskarlalopezbello
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2karlalopezbello
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1karlalopezbello
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3karlalopezbello
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2karlalopezbello
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1karlalopezbello
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-karlalopezbello
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacionkarlalopezbello
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtualkarlalopezbello
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_karlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfilkarlalopezbello
 

Más de karlalopezbello (20)

02 -introduccion_a_la_tecnologia_orientada_a_objetos
02  -introduccion_a_la_tecnologia_orientada_a_objetos02  -introduccion_a_la_tecnologia_orientada_a_objetos
02 -introduccion_a_la_tecnologia_orientada_a_objetos
 
Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2Programacion ii modulo3-leccion2
Programacion ii modulo3-leccion2
 
Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1Programacion ii modulo3-leccion1
Programacion ii modulo3-leccion1
 
Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3Programacion ii modulo2-leccion3
Programacion ii modulo2-leccion3
 
Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2Programacion ii modulo2-leccion2
Programacion ii modulo2-leccion2
 
Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1Programacion ii modulo2-leccion1
Programacion ii modulo2-leccion1
 
Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-Programacion ii modulo1-leccion1-
Programacion ii modulo1-leccion1-
 
Didactica del chat
Didactica del chatDidactica del chat
Didactica del chat
 
Didactica del foro
Didactica del foroDidactica del foro
Didactica del foro
 
Guia completa de_moodle
Guia completa de_moodleGuia completa de_moodle
Guia completa de_moodle
 
Publicacion de material
Publicacion de materialPublicacion de material
Publicacion de material
 
Sistemas de comunicacion
Sistemas de comunicacionSistemas de comunicacion
Sistemas de comunicacion
 
Actividades en moodle
Actividades en moodleActividades en moodle
Actividades en moodle
 
Plataforma moodle
Plataforma moodlePlataforma moodle
Plataforma moodle
 
Introduccion unegvirtual
Introduccion unegvirtualIntroduccion unegvirtual
Introduccion unegvirtual
 
Guia para montar_el_aula_1_
Guia para montar_el_aula_1_Guia para montar_el_aula_1_
Guia para montar_el_aula_1_
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Configuracion del perfil
Configuracion del perfilConfiguracion del perfil
Configuracion del perfil
 
Transparencias7
Transparencias7Transparencias7
Transparencias7
 
Transparencias5
Transparencias5Transparencias5
Transparencias5
 

Principios orientacion-objetos

  • 1. Programación II Ing. Mauricio Paletta, Msc Presentación Fundamentos de la Orientación a Objetos UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA INGENIERÍA EN INFORMÁTICA Programación II
  • 2. Programación II Fundamentos de la Orientación a Objetos ABSTRACCION TIPOS MODULARIDAD CONCURRENCIA ENCAPSULAMIEN. PERSISTENCIA JERARQUIA POLIMORFISMO PRINCIPIOS HERENCIAOBJETO CLASE ENLACE DINAMICO MECANISMOS BASICOS TERMINOS TECNICOS
  • 3. Programación II Principios de la Orientación a Objetos Abstracción
  • 4. Programación II Principios de la Orientación a Objetos Abstracción • Capacidad de adquirir conceptos (idea particular o lo que vemos y comprendemos del mundo), construir jerarquías de generalizaciones y componer objetos mediante la configuración de otros. • Es el acto o resultado de eliminar diferencias entre los objetos, de modo que podamos ver los aspectos comunes.
  • 5. Programación II Principios de la Orientación a Objetos Abstracción • Es una forma de manejar la complejidad de los objetos. • Enfatizar sobre los detalles importantes y olvidar los aspectos no relevantes desde perspectiva del usuario. • Permite separar el comportamiento esencial de un objeto de su implementación.
  • 6. Programación II Principios de la Orientación a Objetos Abstracción • Se implementa mediante la identificación de clases.
  • 8. Programación II • Esconder todos los detalles de un objeto que no contribuyen al entendimiento de sus características esenciales. Información escondida. • Se refiere a incluir dentro de un objeto todo lo que éste necesita y hacerlo de forma tal que ningún otro objeto vea su estructura interna. Principios de la Orientación a Objetos Encapsulamiento
  • 9. Programación II • Permite realizar cambios a los programas con poco esfuerzo. • La idea principal es proteger los datos de un objeto del uso arbitrario. • Se implementa mediante la interfaz de los elementos que definen una clase. Principios de la Orientación a Objetos Encapsulamiento
  • 11. Programación II • Descomponer un sistema en un conjunto de unidades discretas. • Está asociado al concepto de programación modular / estructurada. • Permite empaquetar la abstracción en pequeñas unidades. • Está íntimamente relacionado con el encapsulamiento. Principios de la Orientación a Objetos Modularidad
  • 12. Programación II • Los módulos son generalmente unidades indivisibles. • 5 criterios, 5 reglas y 5 principios. • Se implementa mediante la instanciación de objetos, la identificación de relaciones entre clases y cómo éstas, en conjunto, resuelven el problema tratado. Principios de la Orientación a Objetos Modularidad
  • 13. Programación II Criterio 1 - Descomposición modular: Descomponer el problema de software en un pequeño número de sub-problemas menos complejos, interconectados mediante una estructura sencilla y suficientemente independien- tes para permitir que el trabajo futuro pueda proseguir por separado en cada una de ellos. Ejemplo: diseño top-down Contraejemplo: inicialización global Principios de la Orientación a Objetos Modularidad
  • 14. Programación II Criterio 2 - Composición modular: Favorece la producción de elementos que se pueden combinar libremente unos con otros para producir nuevos sistemas, posiblemente en un entorno bastante diferente de aquél en que fueron desarrollados inicialmente. Ejemplo: biblioteca de subprogramas Contraejemplo: uso de preprocesadores Principios de la Orientación a Objetos Modularidad
  • 15. Programación II Criterio 3 - Comprensibilidad modular: Ayuda a producir software en el cual un lector humano puede entender cada módulo sin tener que conocer los otros. Ejemplo: biblioteca de subprogramas de índole específico Contraejemplo: dependencias secuenciales Principios de la Orientación a Objetos Modularidad
  • 16. Programación II Criterio 4 - Continuidad modular: Un pequeño cambio en la especificación de un problema provoca sólo cambios en un solo módulo o en un pequeño número de módulos. Ejemplo: constantes simbólicas Contraejemplo: estructuras estáticas Principios de la Orientación a Objetos Modularidad
  • 17. Programación II Criterio 5 - Protección modular: Produce arquitecturas en las cuales el efecto de una situación anormal que se da dentro de un módulo durante su ejecución, queda confinado a dicho módulo o en el peor caso, se propaga sólo a unos módulos vecinos. Ejemplo: verificación de los datos de entrada en su origen Contraejemplo: excepciones indisciplinadas Principios de la Orientación a Objetos Modularidad
  • 18. Programación II Regla 1 – Correspondencia directa: La estructura modular obtenida en el proceso de construcción de software debe seguir siendo compatible con cualquier otra estructura modular obtenida en el proceso de modelado del dominio del problema. Principios de la Orientación a Objetos Modularidad
  • 19. Programación II Regla 2 – Pocas interfaces: Cada módulo debe comunicarse con el menor número de módulos posible. Principios de la Orientación a Objetos Modularidad
  • 20. Programación II Principios de la Orientación a Objetos Modularidad Regla 3 – Pequeñas interfaces: Si dos módulos se comunican deben intercambiar la menor información posible.
  • 21. Programación II Principios de la Orientación a Objetos Modularidad Regla 4 – Interfaces explícitas: Siempre que dos módulos A y B se comuniquen, esto debe ser obvio a partir del contexto de A, de B o de ambos.
  • 22. Programación II Principios de la Orientación a Objetos Modularidad Regla 5 – Ocultamiento de información: Cada módulo debe tener seleccionada un subconjunto de propiedades como información oficial del módulo para ponerla a disposición de otros módulos.
  • 23. Programación II Principios de la Orientación a Objetos Modularidad Principio 1 – Unidades modulares lingüísticas: Los módulos deben corresponderse con las unidades sintácticas en el lenguaje utilizado.
  • 24. Programación II Principios de la Orientación a Objetos Modularidad Principio 2 – Auto-documentación: Toda la información relativa a un módulo debe formar parte del mismo módulo.
  • 25. Programación II Principios de la Orientación a Objetos Modularidad Principio 3 – Acceso uniforme: Todos los servicios ofrecidos por un módulo deben estar disponibles a través de una notificación uniforme sin importar la forma como están implementados.
  • 26. Programación II Principios de la Orientación a Objetos Modularidad Principio 4 – Abierto / Cerrado: Los módulos deben ser a la vez abiertos y cerrados. Abierto disponible para ser extendido. Cerrado disponible para ser usado por otros módulos.
  • 27. Programación II Principios de la Orientación a Objetos Modularidad Principio 5 – Elección única: Siempre que un sistema de software deba admitir un conjunto de alternativas, habrá un módulo del sistema (y sólo uno) que conozca su lista completa.
  • 28. Programación II Jerarquía Principios de la Orientación a Objetos
  • 29. Programación II Jerarquía • Es el acto o resultado de distinguir un concepto que es más general que otro. • Permite examinar si los conceptos tienen algo en común. • Nos ayuda a percibir que todas las instancias de un concepto más específico son también instancias de un concepto general. Principios de la Orientación a Objetos
  • 30. Programación II Jerarquía • Permite empaquetar la abstracción en pequeñas unidades. • Representa la organización de una abstracción. • Su uso simplifica el entendimiento del problema. • Se implementa mediante las relaciones de herencia y agregación entre clases. Principios de la Orientación a Objetos
  • 31. Programación II Tipos Principios de la Orientación a Objetos
  • 32. Programación II Tipos • Permite agrupar o formar un conjunto de objetos con características o comportamientos similares. • Dos cosas que tienen la misma forma abstracta son análogas => son del mismo tipo. Principios de la Orientación a Objetos
  • 33. Programación II Tipos • Se implementa mediante la descripción o identificación de los elementos que describen una clase: datos / información atributos operaciones / comportamiento métodos Principios de la Orientación a Objetos
  • 35. Programación II Concurrencia • Es la propiedad que distingue un objeto activo de uno que no lo es. • Permite a diferentes objetos actuar al mismo tiempo; cada uno de ellos tiene autonomía. Principios de la Orientación a Objetos
  • 36. Programación II Concurrencia • Se implementa mediante el proceso de creación o instanciación de objetos a partir de su clase y las propiedades de identidad y estado de los objetos: clase definición / tipología del concepto objeto instancia / ocurrencia cualquiera del concepto Principios de la Orientación a Objetos
  • 38. Programación II Persistencia • Es la propiedad que un objeto tiene de existir en el tiempo y en el espacio. • Un objeto existe hasta que no sea más necesitado y el espacio que ocupa es reutilizado. Principios de la Orientación a Objetos
  • 39. Programación II Persistencia • Tanto la necesidad de espacio para almacenar el objeto como su recupera- ción, involucran a los dependientes (objetos relacionados) de dicho objeto. • Se implementa mediante los procesos de construcción y destrucción de los objetos definidos como parte del comportamiento de la clase. Principios de la Orientación a Objetos
  • 41. Programación II • Es el fenómeno mediante el cual una operación adopta varias formas de implementación. • Habilidad para usar el mismo símbolo para propósitos diferentes cuando el contexto es claro. Principios de la Orientación a Objetos Polimorfismo
  • 42. Programación II • Para el usuario, la visión del operador es una sola, el objeto se encarga de decidir qué hacer; los detalles de implementación quedan ocultos. • Dos operaciones completamente diferentes comparten el mismo nombre. Principios de la Orientación a Objetos Polimorfismo
  • 43. Programación II • Ventajas: extensibilidad, código compacto, claridad. • Se implementa mediante la sobrecarga de funciones y operadores. Principios de la Orientación a Objetos Polimorfismo
  • 44. Programación II Una abstracción simple sirve Coacción como diferentes tipos mediante una conversión de tipos implícita • Específico Un identificador simple denota Sobrecarga muchas abstracciones Por parámetro Una abstracción opera uniforme- mente a través de diferentes tipos • Universal Por inclusión Una abstracción opera a través de una relación de inclusión Principios de la Orientación a Objetos Polimorfismo
  • 46. Programación II • Enlace: conectar una llamada de función al cuerpo de la función; enlace estático o temprano: se lleva a cabo antes de que el programa se ejecute; enlace dinámico posterior: ocurre en tiempo de ejecución. • Representa uno de los mayores avances de la Orientación a Objetos y es una propiedad común (no necesaria) de los lenguajes orientados a objetos. Términos Técnicos Enlace Dinámico
  • 47. Programación II • Es un elemento necesario para poder realizar el polimorfismo. • Para su implementación, debe existir un mecanismo que determine el tipo de objeto en tiempo de ejecución y haga la llamada a la función apropiada. Términos Técnicos Enlace Dinámico
  • 48. Programación II enlace estático enlace dinámico vs Términos Técnicos Enlace Dinámico
  • 50. Programación II • Son las unidades básicas de construcción, para conceptualización, diseño o programación. • Son instancias organizadas en clases con características comunes. Mecanismos básicos Objeto
  • 51. Programación II • Desde la perspectiva de un programa, los objetos son módulos que contienen datos (atributos) y las instrucciones u operaciones (métodos) que operan sobre esos datos y trabajan juntos para proveer funcionalidad. Mecanismos básicos Objeto
  • 52. Programación II • La habilidad para reconocer objetos es una herramienta que los humanos aprenden desde muy temprana edad. • 3 características: estado, identidad y comportamiento. Mecanismos básicos Objeto
  • 53. Programación II Fórmula conceptual: Objeto = Atributos + Métodos Mecanismos básicos Objeto
  • 55. Programación II Objeto - Estado • Contiene todas las propiedades (usualmente estáticas), además de los valores actuales de estas propiedades (usualmente dinámicas). • Hace que cada objeto sea único. • La respuesta que un objeto puede dar, luego de la llamada de un mensaje, depende de su estado actual. Mecanismos básicos
  • 56. Programación II Objeto - Estado • Determina cómo son los nodos en un diagrama de transición de estados del objeto. • Nota: principio de persistencia. • Ejemplos: color – rojo; peso – 75.4; edad – 24; número de ítems – 190; profesión – “Arquitecto”. Mecanismos básicos
  • 57. Programación II Objeto - Identidad • Distingue a un objeto del resto. • Es independiente del estado. • Se conserva durante toda la vida del objeto, aún cuando se realicen cambios de estado. • Es la base para construir / armar un mensaje hacia el objeto correspondiente. Mecanismos básicos
  • 58. Programación II Objeto - Identidad • Es una propiedad muy importante para las Bases de Datos Orientadas a Objetos (OODB). • Nota: principio de concurrencia. • Ejemplos: X1, X2, MiVentana, MauricioPaletta. Mecanismos básicos
  • 59. Programación II Objeto - Comportamiento • Indica la forma como el objeto actúa y reacciona en término de los cambios de estado. • Está totalmente definido por sus acciones u operaciones. • 2 conceptos importantes: método y mensaje. Mecanismos básicos
  • 60. Programación II Objeto - Comportamiento • Nota: principios de encapsulamiento y polimorfismo. • Ejemplos: ObtenerValor, AsignarValor, Agregar, Quitar, Sumar. Mecanismos básicos
  • 61. Programación II Objeto - Comportamiento Método: Procedimiento que reside en el objeto y determinan cómo éste actuará cuando reciba un mensaje. Su ejecución puede cambiar el estado del objeto, crear objetos nuevos, enviar mensajes a otros objetos, etc. Mecanismos básicos
  • 62. Programación II Objeto - Comportamiento Mensaje: Canal de comunicación que usan los objetos para ejecutar acciones. Sólo cuando se recibe un mensaje, el objeto ejecuta una acción. Todo proceso es activado por mensajes entre objetos. Mecanismos básicos
  • 63. Programación II Objeto - Comportamiento Mensajes Atributos Métodos Asignar / Set Obtener / Get (Atributos) Mecanismos básicos
  • 64. Programación II Objeto - Comportamiento Mensaje = Identidad del Objeto + Método + Parámetros Mecanismos básicos Fórmula conceptual:
  • 65. Programación II Objeto - Comportamiento Es el conjunto de mensajes a los cuales un objeto responde o puede responder. Nótese que no necesariamente es igual al conjunto de métodos del objeto (encapsulamiento y polimorfismo). Mecanismos básicos Protocolo del Objeto:
  • 67. Programación II Clase • Define la estructura y el comportamiento de una forma abstracta o concepto para darle vida a los objetos. • Es un patrón (plantilla) que define los atributos y métodos a ser incluidos es un tipo particular de objeto. • Se dice que un objeto es una instancia particular de una clase. Mecanismos básicos
  • 68. Programación II Clase • Consta de dos partes: una declaración y una implementación. La declaración lista o identifica los miembros de la clase (atributos y métodos). La implementación define el cuerpo de los métodos de la clase. Mecanismos básicos
  • 69. Programación II Clase • Nota: principios de abstracción, jerarquía, modularidad y tipos. • Nota: principio de encapsulamiento – interfaz de la clase. Mecanismos básicos
  • 70. Programación II Clase - interfaz • Determina la forma en la cual los elementos de la clase (atributos y métodos) pueden o no ser usados (son visibles) por cada uno de los tres tipos diferentes de usuarios: · Elementos de la misma clase. · Elementos de clases relacionadas (herencia). · Otros elementos externos. Mecanismos básicos
  • 71. Programación II Clase - interfaz • Tres niveles de interfaz: Mecanismos básicos Privada Visibilidad sólo para la misma clase Protegida Visibilidad para la misma clase y clases relacionadas Pública Visibilidad para cualquiera
  • 72. Programación II PUBLICA Otros usuarios externos PROTEGIDA Clases relacionadas Clase - interfaz PRIVADA Clase actual Mecanismos básicos
  • 73. Programación II Clase - relaciones • Basado en el principio de jerarquía, para la definición de una clase nueva se pueden usar clases existentes, ya sea incorporando un objeto como atributo de la clase (agregación) o estableciendo una generalización (herencia). Mecanismos básicos
  • 74. Programación II Clase - relaciones Para dos clases A y B: A es una agregación de B si y sólo si (B contiene a A) A forma parte de B A hereda de B si y sólo si (B es una generalización de A) A es un caso particular de B Mecanismos básicos
  • 75. Programación II Clase – relaciones (ejemplo) -Capacidad -Longitud Aeronave -# Turbinas -Modelo Avión -# Motores -Tipo Motor -Autonomía Avioneta -Diámetro Hélice -Tipo Motor Helicóptero Aeropuerto Torre -Número Puerta -Número -Estado Plataforma -Número -Estado Hangar -Número -Tipo Pista 1 1 1 1..* 11..* 1 1..* 1 1..* * -Comunica con 1 1..* -Embarque / Desembarque 1 1..* -Aterriza / Despega 1..* 1..* -Usa 1..* 1..* -Aterriza / Despega 1..* 1..* -Aterriza / Despega 1..* Mecanismos básicos
  • 77. Programación II Herencia • Permite crear clases nuevas a partir de clases ya existentes, estableciendo niveles de jerarquía y programando sólo las diferencias. • Permite refinar las estructuras sin necesidad de duplicar información. Mecanismos básicos
  • 78. Programación II Herencia • La clase nueva (jerarquía inferior) es conocida como subclase o clase derivada y la clase de mayor nivel se denomina superclase o clase base. • Según el número de clases base, puede ser de dos tipos: simple (una sola clase base) y múltiple (mas de una clase base). Mecanismos básicos
  • 79. Programación II Herencia - ejemplo Generalización Especialización Mecanismos básicos
  • 80. Programación II Herencia Clase Derivada = Clases Base + Otros Elementos Mecanismos básicos Fórmula conceptual:
  • 81. Programación II Herencia Nota: Si el identificador de un método o atributo de una clase cualquiera es similar a alguno de los elementos de una posible clase base, cualquier referencia a este identificador estará asociado al elemento de la clase derivada, a menos que se indique lo contrario. Mecanismos básicos
  • 82. Programación II Herencia Nota: Cuando un objeto recibe un mensaje que contiene un método que no está definido en su clase, se busca automáticamente hacia arriba en su jerarquía de clases. Igual ocurre al acceder a un atributo del objeto. Mecanismos básicos
  • 83. Programación II Herencia – clase abstracta Mecanismos básicos • Clases cuya descripción es incompleta. • Sólo sirven para ser usadas como clases bases en una relación de herencia. • En términos de diseño, son útiles para permitir a un usuario refinar o particularizar un concepto.
  • 84. Programación II Herencia – clase abstracta Mecanismos básicos • No es posible o no tiene sentido instanciar objetos con ellas. • Por lo general contienen uno o más métodos virtuales.
  • 85. Programación II Herencia – clase abstracta Nota: Aunque pueden haber métodos genéricos definidos en algún nivel de la jerarquía de clases, no está prohibido que existan definiciones específicas o detalladas en los niveles inferiores. En este caso, ambos métodos pueden ser usados (como si fuera un polimorfismo), siempre y cuando no se trate de la redefinición de un método virtual. Mecanismos básicos
  • 86. Programación II Herencia – clase abstracta Mecanismos básicos
  • 87. Programación II Herencia –método virtual Mecanismos básicos • Pertenece a una clase abstracta. • Debe ser obligatoriamente redefinido en las clases derivadas. • Puede verse como una indicación a los usuarios de la clase base, que parte del trabajo a realizar en la clase derivada, es definir estos métodos a fin de que se complete el comportamiento del concepto.
  • 88. Programación II Herencia –método virtual Mecanismos básicos • Su uso tiene implicaciones en los espacios de memoria ocupados por los objetos instanciados.
  • 89. Programación II Herencia –método virtual Nota: Un método no virtual de una clase base y otro similar (polimórfico) de la clase derivada ocupan ambos espacios de memoria independientes. En un método virtual sólo se tiene el espacio de memoria ocupado por la redefinición en la clase derivada. Mecanismos básicos
  • 90. Programación II Herencia – interfaz • Permite determinar qué criterio de interfaz (público, privado ó protegido) se va a usar para los usuarios de la clase derivada con los elementos públicos de la clase base. Mecanismos básicos