Upload
celia-macias-poblete
View
214
Download
0
Embed Size (px)
Citation preview
Técnica para el modelado de sistemas.Se modela el sistema a través de un número de objetos relacionados que interactúan entre si.
Similar a la manera en que la gente ve su medio ambiente.
Es una forma de pensar y concebir el mundo.
1
Paradigma Orientada a Objetos
Abstracción
2
Es el proceso de ignorar los detalles para concentrarse en las características esenciales.
Es el proceso mental primario para abordar la complejidad.
Simplifica la interacción de los usuarios con objetos abstraídos.
Hay dos tipos: La abstracción funcional y la abstracción de datos.
Abstracción Funcional – (1)
3
Ignora detalles acerca del procesamiento.Hace uso de abstracciones de lenguaje de
alto nivel.Utiliza abstracciones definidas por el
usuario ( procedimientos y subrutinas )
Abstracción Funcional – (2)
4
int *endptr; int *primptr; int i,k;primptr = ptr; endptr = ptr + n - 1;for(i=0; i<n; i++){ for(ptr = primptr; ptr < endptr - i; ptr++)
if(*ptr > *(ptr+1)){
k = *ptr;*ptr = *(ptr+1);*(ptr+1) = k;
}}
Abstracción Funcional – (3)
5
El código anterior parece ser complejo. Si se tuviera que poner cada vez que ser
requiera entonces el propósito global del programa se perdería.
En lugar de esto usamos una función de ordenamiento
void burbuja(int ptr[], int n)
Abstracción de Datos
6
Trata con tipos de datosPermite ignorar los detalles de la
representación interna de los datosInvolucra la abstracción funcional.
p.ej. Cuando las operaciones entre tipos de datos son ejecutadas con números de punto flotante, la representación interna permanece oculta.
Identificando a los Objetos (1)
7
Los objetos pueden ser una oración, una cuenta en un banco, un número, un auto, una persona, etc.
Los objetos son:CosasReales o imaginariasSimples o complejas
Identificando a los Objetos (2)
8
VacaObjeto Empleado
X + YX + YiiNúmero Complejo
Reloj Despertador Motocicleta Cuenta Bancaria
Identificando a los ObjetosAtributos y Operaciones
9
Los objetos tienen atributos y operaciones.
Los atributos son: las características del los objeto.
Las operaciones son: lo que un objeto puede hacer.
Identificando a los ObjetosIdentidad
10
Además de los atributos y operaciones un objeto tiene una identidad.
La identidad de un objeto es lo que lo diferencia y distingue de otros objetos similares.
Identificando a los ObjetosSus tres elementos
11
Podemos resumir que todo objeto esta compuesto de 3 elementos:
Objeto = atributos + operaciones + identidad
Identificando a los Objetosatributos, operaciones e
identidad
12
Atributos de las nubes:Tamaño, forma, contenidode agua
Operaciones de las nubes:llueven, nevan, truenan
Identidad de las nubes :Cada nube es diferente en tamaño y forma
Criterios para Identificar un Objeto
13
Relevancia para el dominio del problema.Necesidad de su existencia independiente.Que tenga atributos y operaciones
Importancia para el Dominio del Problema
14
¿Existe dentro de las fronteras del enunciado del problema?
¿Es requerido para alcanzar completamente las responsabilidades del sistema?
¿ Los objetos son características de otros objetos ?
Existencia Independiente
15
Para que un objeto no sea una característica de otro objeto, necesariamente debe existir con independencia.
P.ej. Considere una computadora que tiene Pentium III de procesador. En una perspectiva ( para un vendedor ), el procesador es una característica o atributo de la computadora. Pero si usted fuera diseñador de componentes de computadoras o PC en una fábrica, el procesador por si mismo es un objeto independiente
Atributos y Operaciones
16
Un objeto debe tener atributos y operaciones
Si no los tiene, es probablemente un atributo u operación de otro objeto.
Encapsulamiento
17
El encapsulamiento separa los aspectos externos de un objeto de sus detalles internos de implementación.
Los cambios internos necesarios no afectan a la interface externa.
P.ej. Ud. no necesita saber como un teléfono conecta a las dos partes para poder utilizarlo. Solo necesita entender la interface, cual es la composición de botónes, el auricular ( para el oido ) , y la bocina ( para la voca ). Ud. puede ignorar los procesos internos de cómo es hecha la conexión, los switches que cruzan los países, etc.
Partes de un objeto encapsulado
18
Cada objeto tiene:Interface pública ( externo ).Implementación ( interno )Información interna ( información
para la implementación ).
Implementando el Encapsulamiento
19
Los atributos y operaciones de un objeto son sus miembros.
Los miembros de un objeto pueden ser public o private .
En sistemas OO puros, todos los atributos son privados y pueden ser cambiados o accesados solo a través de operaciones públicas.
Mensajes – (1)
20
Un mensaje es la manera en que los objetos se comunican e interactúan entre sí.
Un mensaje es la invocación de una operación u método de la interfaz publica de un objeto encapsulado
En los objetos encapsulados, los mensajes son entre los métodos públicos de los objetos.
El acceso al estado de un objeto es mediante estos mensajes a métodos accesores y mutadores. ( los getters y setters ).
Mensajes - (2)Estado de un objeto
21
El estado de un objeto son los valores actuales de los atributos de un objeto en un instante dado.
La instancia de una clase ( o sea un objeto ) cambia o muta sus valores en el transcurso del tiempo de vida del objeto.
Este estado del objeto solo es posible accesarlo o modificarlo con mensajes o invocaciones a las operaciones de la interface pública de los objetos para no perder la propiedad del encapsulamiento. ( getters y setters ).
Mensajes - (3)
22
Lectura de velocidadLectura de velocidad
VelocidadVelocidad
RPMRPM
Luces TestigoLuces Testigo
Fuerzas del VolanteFuerzas del Volante
Vista
Oido
Tacto
Estados Mentales
Mensajes entre objetosMensajes entre objetos
Mensajes - (4)
23
Acelerar ( Fuerza)Acelerar ( Fuerza)
Girar (sentido,ángulo)Girar (sentido,ángulo)
Frenar (Fuerza)Frenar (Fuerza)
EmbragarEmbragar
DesembragarDesembragar
Freno
Acelerador
Palanca de velocidades
-Posición-Velocidad-Aceleración-RMP del motor…..
Volante
Cambiar marcha ( Marcha)Cambiar marcha ( Marcha)
Mensajes entre objetos
Resumen
24
Ud. Debería definir hasta este momento los siguientes términos.
ObjetoObjetoAtributosAtributosOperacionesOperacionesAbstracciónAbstracciónOcultamiento de DatosOcultamiento de DatosEncapsuladoEncapsuladoMensajesMensajesMiembroMiembro
Clases
25
Un objeto es una instancia: Una específica galleta, hoja, balón, carro o moneda.
“Un carro” es una clase; “mi carro” es un objeto
Clases de objetos
26
Objetos de la clase GalletaObjetos de la clase Galleta
Objetos de la clase BalónObjetos de la clase Balón
Concepto de ClaseConcepto de Clase
27
ClaseClase : : Es una descripción de atributos y Es una descripción de atributos y comportamientos de un conjunto de objetos similares. comportamientos de un conjunto de objetos similares. Los objetos de una clase o tipo determinado comparten Los objetos de una clase o tipo determinado comparten los mismos comportamientos y atributos. Las clases los mismos comportamientos y atributos. Las clases actúan en forma muy parecida a una plantilla o molde actúan en forma muy parecida a una plantilla o molde para galletas en el sentido de que una clase se utiliza para galletas en el sentido de que una clase se utiliza
para crear o para crear o instanciarinstanciar objetos objetos
Creación o
instanciación
Generalización
28
Ejemplo: Transporte es una generalización de varias clases que proveen transportación.
La Generalización identifica y define los atributos y operaciones comunes en una colección de objetos.
Herencia – (1)
P. ej. El balon de soccer puede heredar miembros de la clase Balon
29
BalonBalon
Soccer BallSoccer Ball BaseballBaseballBasketballBasketball
Superclase
Subclases
Herencia – (2)
30
Es un mecanismo para definir una nueva clase en términos de una clase existente.
Permite agrupar clases relacionadas de tal manera que pueden ser manejadas colectivamente
Promueve su usoPermite esconder o sobreponer miembros
heredadosTérminos relevantes: generalización,
especialización, sobreposición.
Herencia – (3)Especialización y Generalización
31
Especialización – (1)
32
Mientras la generalizacióngeneralización se enfoca a las clases mayores del sistema, y ayudan a identificar nuevas clases, la especializaciónespecialización se enfoca a la creación individual, mas clases específicas que heredarán de una clase mayor. La especialización es herencia con la agregación y modificación de métodos para resolver problemas específicos.
Especialización - (2)
33
Transporte
Bicicleta AviónAutomóvil
TrailerCarro CarrerasMontaña
Comercial
Privado
Clases Generalizadas:
Clases:
ClasesEspecializadas:
Polimorfismo - (1)
34
Le permite implementar las operaciones heredadas en una subclase.
Trabaja solamente cuando operaciones comunes dan el mismo resultado semántico.
La implementación de una función polimórfica depende del objeto al cual es aplicado.
Puede usarse solamente cuando hay herencia.
Polimorfismo (2)
35
P.Ej. Una superclase Balón incluye en sus operaciones la operación lanzar. Sus subclases, tales como Balon de tenis, o Balón de Soccer, heredarían la misma operación. Sigue siendo la misma operación en las tres clases, sin embargo el como y el cuando usted lanza usted cada balón difiere uno de otro.
Polimorfismo – (3)
El polimorfismo es un concepto importante en los sistemas orientados a objetos que soportan el reutilización y mantenimiento de software.
36
lanzalanza
lanzalanza
Polimorfismo – (4)otro ejemplo
37
Considere una clase general llamada InstrumentoDeEscritura.
La clase tiene una operación llamada escribe.
¿Qué objetos del salón de clase pueden ser subclases de InstrumentoDeEscritura?
¿Cómo es la operación polimórfica escribe para cada objeto?
Polimorfismo – (5)puntos clave.
38
Los siguientes puntos son clave para acordarnos acerca del polimorfismo:
El polimorfismo esta basado en la herencia.El polimorfismo puede ser aplicado a cualquier
operación que es heredada de una superclaseLas subclases sobreponen o sobre-escriben la
operación heredada para reflejar mejor esta para las acciones de sus objetos , proveyendo una mejor forma de operación, de aquí el término de polimorfismo.
Clases Abstractas – (1)
39
Una clase con por lo menos una operación abstracta es una clase abstracta.
Una subclase de una clase abstracta necesita proveer una implementación de todas las operaciones abstractas o de los contrario también será una clase abstracta.
Una clase abstracta no puede ser instanciada ( usted no puede crear objetos de una clase abstracta ).
Las operaciones abstractas de una clase abstracta son simplemente declarativos.
Clases abstractas – (2)Ejemplo
40
Considere implementar clases para un circulo , rectángulo, y triángulo.
Las operaciones para estas clases deben incluir operaciones como setColor y setBorderStyle.
Puede decidir crear una clase abstracta llamada figura con dos operaciones abstractas: setColor y setBorderStyle
Las subclases deben sobre-escribir o sobreponer las operaciones abstractas y proveer código de implementación que tenga sentido para cada subclase de figura.
Resumen
41
Ud. Debería definir hasta este momento los siguientes términos:
ClaseClaseObjetoObjetoGeneralizaciónGeneralizaciónHerenciaHerenciaSobreponer o Sobre – escrituraSobreponer o Sobre – escrituraEspecializaciónEspecializaciónPolimorfismoPolimorfismoClase abstractaClase abstracta