La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Paradigma Orientada a Objetos

Presentaciones similares


Presentación del tema: "Paradigma Orientada a Objetos"— Transcripción de la presentación:

1 Paradigma Orientada a Objetos
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.

2 Abstracción 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.

3 Abstracción Funcional – (1)
Ignora detalles acerca del procesamiento. Hace uso de abstracciones de lenguaje de alto nivel. Utiliza abstracciones definidas por el usuario ( procedimientos y subrutinas )

4 Abstracción Funcional – (2)
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; }

5 Abstracción Funcional – (3)
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)

6 Abstracción de Datos Trata con tipos de datos
Permite ignorar los detalles de la representación interna de los datos Involucra 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.

7 Identificando a los Objetos (1)
Los objetos pueden ser una oración, una cuenta en un banco, un número, un auto, una persona, etc. Los objetos son: Cosas Reales o imaginarias Simples o complejas

8 Identificando a los Objetos (2)
Vaca Objeto Empleado X + Yi Número Complejo Reloj Despertador Motocicleta Cuenta Bancaria

9 Identificando a los Objetos Atributos y Operaciones
Los objetos tienen atributos y operaciones. Los atributos son: las características del los objeto. Las operaciones son: lo que un objeto puede hacer.

10 Identificando a los Objetos Identidad
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.

11 Identificando a los Objetos Sus tres elementos
Podemos resumir que todo objeto esta compuesto de 3 elementos: Objeto = atributos + operaciones + identidad

12 Identificando a los Objetos atributos, operaciones e identidad
Atributos de las nubes: Tamaño, forma, contenido de agua Operaciones de las nubes: llueven, nevan, truenan Identidad de las nubes : Cada nube es diferente en tamaño y forma

13 Criterios para Identificar un Objeto
Relevancia para el dominio del problema. Necesidad de su existencia independiente. Que tenga atributos y operaciones

14 Importancia para el Dominio del Problema
¿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 ?

15 Existencia Independiente
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

16 Atributos y Operaciones
Un objeto debe tener atributos y operaciones Si no los tiene, es probablemente un atributo u operación de otro objeto.

17 Encapsulamiento 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.

18 Partes de un objeto encapsulado
Cada objeto tiene: Interface pública ( externo ). Implementación ( interno ) Información interna ( información para la implementación ). La interface publica: la parte externa de el objeto que ud. Usa para interactuar con el objeto. ( p.ej. Uso de botones sobre el teléfono para marcar un número ) La Implementación: Las operaciones internas; Que puede ud. hacer, o el propósito del objeto ( llamar a otro número telefónico ) Información interna: Que necesita un objeto para saber para ejecutar una acción completamente ( como rutear la llamada por el switch público )

19 Implementando el Encapsulamiento
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. Si un miembro es definido como public, ya sea un atributo o una operación, entonces es parte de la interface pública. Si un miembro es definido como private, entonces es parte de la implementación.

20 Mensajes – (1) 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 ).

21 Mensajes - (2) Estado de un objeto
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 ).

22 Mensajes - (3) Mensajes entre objetos Tacto Estados Mentales Vista
Lectura de velocidad Tacto Velocidad Estados Mentales RPM Vista Luces Testigo Fuerzas del Volante Oido

23 Mensajes - (4) Mensajes entre objetos Palanca de velocidades Volante
Acelerar ( Fuerza) Girar (sentido,ángulo) -Posición -Velocidad -Aceleración -RMP del motor ….. Frenar (Fuerza) Volante Freno Embragar Desembragar Acelerador Cambiar marcha ( Marcha)

24 Resumen Ud. Debería definir hasta este momento los siguientes términos. Objeto Atributos Operaciones Abstracción Ocultamiento de Datos Encapsulado Mensajes Miembro

25 Clases 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

26 Clases de objetos Objetos de la clase Galleta
Objetos de la clase Balón

27 Concepto de Clase Clase : Es una descripción de atributos y comportamientos de un conjunto de objetos similares. Los objetos de una clase o tipo determinado comparten los mismos comportamientos y atributos. Las clases actúan en forma muy parecida a una plantilla o molde para galletas en el sentido de que una clase se utiliza para crear o instanciar objetos Creación o instanciación

28 Generalización 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. Definición de la Generalización: Es un proceso que se efectua durante el análisis y diseño de sistemas y define atributos y operaciones comunes en una colección de objetos. Ayuda a enfocarse sobre las clases mayores del sistema, y también auxilia a identificar nuevas clases. Para identificar partes comunes de un sistema, la generalización reduce la redundancia en el proceso de desarrollo y en el código subsecuente , y promueve su uso.

29 Herencia – (1) P. ej. El balon de soccer puede heredar miembros de la clase Balon Balon Soccer Ball Baseball Basketball Superclase Subclases

30 Herencia – (2) 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 uso Permite esconder o sobreponer miembros heredados Términos relevantes: generalización, especialización, sobreposición.

31 Herencia – (3) Especialización y Generalización
En la figura siguiente se muestra la diferencia entre generalización y especialización. En la medida en que se recorra hacia abajo una jerarquía, estará especializando. Conforme lo haga hacia arriba estará generalizando.     Entre más generales, más clases caerán dentro de esta categoría, y entre más especialice, menos podrán conocer todos los criterios para categorizarce  en ese nivel

32 Especialización – (1) Mientras la generalización se enfoca a las clases mayores del sistema, y ayudan a identificar nuevas clases, la especializació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.

33 Especialización - (2) Transporte Bicicleta Avión Automóvil Comercial
Clases Generalizadas: Transporte Bicicleta Avión Automóvil Clases: Clases Especializadas: Comercial Carro Trailer Montaña Carreras Privado

34 Polimorfismo - (1) 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.

35 Polimorfismo (2) 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.

36 Polimorfismo – (3) El polimorfismo es un concepto importante en los sistemas orientados a objetos que soportan el reutilización y mantenimiento de software. lanza Definición. Una operación definida en mas de una clase que es similar en cada clase es polimórfica. Una operación polimórfica puede ser aplicada a objetos de diferentes clases para alcanzar el mismo resultado semántico. El mensaje “dibuja” enviado a un objeto Pintor, es enteramente diferente en su respuesta que si se envia el mismo mensaje a un objeto Arquitecto. Si no da el mismo resultado semántico entonces no es polimorfico. El polimorfismo puede ser usado solo con la herencia - no se puede implementar la misma operación con un balón de tennis y un balón de soccer si ambos no heredan los miembros de la clase Balon. lanza

37 Polimorfismo – (4) otro ejemplo
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?

38 Polimorfismo – (5) puntos clave.
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 superclase Las 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.

39 Clases Abstractas – (1) 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.

40 Clases abstractas – (2) Ejemplo
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.

41 Resumen Ud. Debería definir hasta este momento los siguientes términos: Clase Objeto Generalización Herencia Sobreponer o Sobre – escritura Especialización Polimorfismo Clase abstracta


Descargar ppt "Paradigma Orientada a Objetos"

Presentaciones similares


Anuncios Google