Documente Academic
Documente Profesional
Documente Cultură
CONTENIDOS
1. 2. 7. 8. 9. 10. 11. 12.
Super-clase/Herencia Relaciones entre objetos Encapsulacin y Ocultacin de informacin Cohesin y acoplamiento Comunicacin Polimorfismo Clases abstractas Lenguajes OO
Super-clase
MUNDO REAL
Las categoras de elementos pueden reagruparse en SUPER-CATEGORIAS : SIMULACIN INFORMTICA Las clases pueden reagruparse en SUPER-CLASES :
HERENCIA
Super-clase
Herencia
Se establece una estructura jerrquica en la que cada clase hereda atributos y mtodos de las clases que estn por encima de ella. La clase derivada (Subclase) puede usar los procedimientos y los atributos de su SuperClase. Cada subclase puede tener nuevos atributos y mtodos y/o redefinir los heredados. Objetivo: permitir el anlisis por clasificacin. Ventajas: granularidad, reutilizacin.
Herencia
Clase VEHICULO
matrcula, marca, velocidad, potencia, color, ... cambiarMarcha() acelerar() frenar(), ...
televisin llantasAleacion combustible cambiarMarcha() numPasajeros() Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
litera cambiarMarcha()
pesoCarga()
Herencia
EMPLEADO
PagarSalario
Jubilar Puesto N Emp Nomina Jubilar ActNomina Nivel autGastos
EJECUTIVO
PagarSalario
Herencia
Salario
Contratar Ext.Tfno Ascender Cambiar ExtTfno establecer NivelGastos
Herencia
La bsqueda de los mtodos y de los atributos sigue la jerarqua de las clases. Un objeto busca tanto los mtodos y los atributos en su clase, despus en sus super-clases.
CambiarExtTfno
EMPLEADO
PagarSalario Jubilar Puesto N Emp Salario Nomina
EJECUTIVO
PagarSalario
Herencia
Contratar
Ext.Tfno Ascender Cambiar ExtTfno Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
Herencia
Jubilar
EMPLEADO
PagarSalario Jubilar Puesto Nomina Jubilar
Jubilar EJECUTIVO
PagarSalario
Herencia
Nivel autGastos
ActNomina
NEmp
Salario Contratar Ext.Tfno Ascender Cambiar ExtTfno
establecer NivelGastos
10
Tipos de herencia
Persona
Empleado
Becario
11
Tipos de herencia
Vehculo terrestre
Vehculo martimo
Coche
VehculoAnfibio
Barco
Estudiante
Empleado
Trabajador_Estudiante
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
12
Tipos de herencia
H. Mltiple - Problemas:
Conflictos de nombres Conflictos de valores Conflictos de valores por defecto Conflictos de dominio Conflictos de restricciones
Solucin:
Lista de precedencia de clases. Herencia selectiva: Algunas de las propiedades de las superclases se heredan selectivamente.
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
13
Jerarquas de clases
Generalizacin
Especializacin
Cada sub-clase puede establecer sus propias caractersticas, bien aadindolas a las definidas por la clase padre, o suprimiendo algunas de estas caractersticas. Para construir sistemas de software complejos y adems comprensibles, la tecnologa orientada a objetos utiliza nuestros mecanismos conceptuales innatos.
Concepto genrico
Abstraccin Concrecin
Caso particular
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
14
sangre
corazn
de boquilla de lengeta
clula
Herencia
Ventajas
15
Reutilizacin de software.
Reutilizacin de componentes.
Consistencia de la interface.
16
Asociacin
Es una conexin entre clases, una conexin (enlace) semntica entre objetos de las clases implicadas en la relacin. Esto se consigue usando algn objeto de una de las clases como atributo de la clase asociada.
Empleado Cliente Conductor Producto Departamento Pliza Vehculo Pedido
17
Agregacin (Composicin)
18
Se da cuando una clase est estructuralmente compuesta de otras clases. Una clase est formada por objetos de objetos (objeto compuesto) de otra u otras clases. Para la existencia del objeto compuesto deben existir los dems objetos.
Monitor
Disco
Ordenador
Memoria
Teclado
19
Cardinalidad
Asociacin y Agregacin tienen cardinalidad: Nmero de instancias de una clase que estn relacionadas con una instancia de la otra clase.
1..*
0..*
Producto
Pedido
1..*
Cliente
Cuenta
1..*
Empleado
Departamento
20
Encapsulacin
Tcnica que permite localizar y ocultar los detalles de un objeto respecto al usuario, aislndolo del aspecto interno. Previene que un objeto sea manipulado por operaciones distintas a las que le son propias, as como que sus operaciones manipulen datos ajenos a ellas.
Separar el aspecto externo de los detalles internos. Ninguna parte de un sistema complejo debe depender de los detalles internos de cualquier otra parte.
21
Encapsulacin
Encapsulacin = disimulacin de los datos. Los datos estn protegidos de los objetos exteriores. Los objetos son independientes de la estructura interna de otros objetos. Es la propiedad que asegura que la informacin de un mdulo esta oculta al mundo exterior. Es una tcnica de diseo para descomponer sistemas en mdulos. Permite la constitucin de bibliotecas de objetos genricos reutilizables.
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
22
Encapsulacin
Programacin estructurada:
Funciones a realizar. Variables, constantes. El programador concentra su atencin sobre el desarrollo de rutinas. La utilizacin de nuevas referencias a estas rutinas no se tiene en cuenta por el cdigo existente. Los costes de mantenimiento aumentan.
23
Ocultacin de Informacin
Principio por el cual los mdulos son utilizados por su especificacin, no por su implementacin.
?
mensaje
Los detalles de implementacin estn ocultos y slo es accesible el interfaz Un objeto tiene una interfaz pblica que otros objetos pueden usar para comunicarse con l. El objeto puede mantener informacin privada y mtodos que pueden cambiar sin que esto afecte a otros objetos que dependen de l.
Cohesin y Acoplamiento
Buscamos: MAXIMA cohesin / MINIMO acoplamiento
24
Acoplamiento:
Es una medida de la fuerza de conexin entre dos componentes de un sistema. Cuanto ms conoce un componente de otro, ms fuerte es el acoplamiento entre ellos.
Cuando construimos sistemas de objetos, debemos acoplar los objetos en cierta medida. Si al disear un objeto lo dotamos de un excesivo conocimiento de otros objetos, estamos haciendo acoplamiento innecesario.
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
Cohesin y Acoplamiento
25
En un sistema fuertemente acoplado: disminuye la posibilidad de reutilizar objetos individuales el sistema es ms complejo y por tanto ms difcil de entender y mantener
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
Cohesin y Acoplamiento
Cohesin: Es una medida de cunto estn relacionados lgicamente los componentes encapsulados en un objeto. Es la otra cara de la moneda del acoplamiento. Para un objeto poco cohesionado: aumenta la probabilidad de sufrir cambios disminuye la probabilidad de reutilizacin
26
27
Comunicacin
MUNDO REAL Dos elementos de un sistema fsico interaccionan intercambiando: FLUJOS de datos, materia, o energa. SIMULACIN INFORMTICA Dos objetos interaccionan intercambiando : un MENSAJE
28
Comunicacin
Los objetos se comunican entre s mediante el envo de mensajes. El propsito de un mensaje es pedir al objeto que lo recibe que active el mtodo que se le indica y que devuelva al objeto original el resultado de esa accin. Una secuencia de instrucciones en un lenguaje clsico es reemplazada por una secuencia de comunicaciones. La sintaxis de una comunicacin es muy simple: <sujeto> <verbo> <complemento> o tambin: <destinatario> <mensaje> <datos> <objeto receptor> <mtodo seleccionado> <parmetros>
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
29
Comunicacin
Los mensajes que recibe un objeto son los nicos conductos que conectan el objeto con el mundo exterior. Los datos de un objeto estn disponibles para ser manipulados solo por los mtodos del propio objeto. Cuando se ejecuta un POO ocurren tres cosas:
1. Los objetos se crean a medida que se necesitan. 2. Los mensajes se mueven de un objeto a otro (o desde el usuario a un objeto) a medida que el programa procesa la informacin. 3. Cuando los objetos no se necesitan se borran y se libera la memoria.
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
30
Comunicacin
CLIENTE
MENSAJE CUENTA RetiradaFondos: 5000
CUENTA
Retirada Fondos:
Saldo
31
Comunicacin
Unificacin de la sintaxis
funciones: restar ( a, b ) : restar a de b o restar b de a ? expresiones (anotaciones postfijado, prefijado, infijado): ab- , -ab , a-b mensaje: a restar: b, a - b
Simplificacin de la sintaxis
32
Polimorfismo
Significa tener o asumir distintas formas. En el contexto de POO se refiere a la capacidad de los diferentes objetos para responder de distinta forma a la misma operacin. Esta caracterstica habilita al programador para tratar uniformemente objetos que provienen de clases diferentes. Permite enviar el mismo mensaje a objetos diferentes y que cada uno responda en la forma apropiada segn el tipo de objeto que sea, ejecutando su mtodo. El polimorfismo est asociado a la ligadura dinmica (dynamic binding). La asociacin de un mtodo con su nombre no se determina hasta el momento de su ejecucin. El polimorfismo es una aplicacin particular de la herencia de comportamiento. Una misma operacin (un mismo elemento de comportamiento) podr interpretarse de diversas maneras segn la posicin en la que se encuentre dentro de la jerarqua. Usualmente requiere del empleo de clases abstractas.
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
33
Polimorfismo
Clase FIGURA GEOMETRICA (Clase Abstracta)
color, posicin borrarFigura, moverFigura, getColor, setColor, dibujar
Clase
CIRCULO
Clase
CUADRADO
Clase
TRIANGULO
dibujar
dibujar
dibujar
resultado del mtodo Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
Polimorfismo
Ventajas
34
Da uniformidad a la sintaxis. Disminuye la cantidad del cdigo a escribir (por eliminacin de las estructuras alternativas con opciones mltiples). Facilita el tratamiento de colecciones heterogneas.
Clases abstractas
A veces es til aislar en clases conceptos incompletos aunque coherentes y cohesivos. Los atributos y los mtodos de estas clases estn disponibles para ser especializados va herencia. Una clase abstracta no puede tener instancias.
No podemos instanciar Clase totalmente abstracta slo define interfaz
Programacin Orientada a Objetos Tema 3: Conceptos fundamentales de POO
35
Clase concreta
36