Universidad Domingo Savio Facultad de Ciencias y Tecnologa

  • Slides: 49
Download presentation
Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en

Universidad Domingo Savio Facultad de Ciencias y Tecnología de la Información Carrera Ingeniería en Redes y Telecomunicaciones Materia : Programación I Programación Orientada a Objetos

Objetos y Clases

Objetos y Clases

¿Qué es un objeto? Los objetos del mundo real que nos rodean nacen, viven

¿Qué es un objeto? Los objetos del mundo real que nos rodean nacen, viven y mueren. Los objetos informáticos definen una representación abstracta de las entidades del mundo real y virtual con el objeto de simularlos o controlarlos. Los objetos pueden representar entidades materiales (con masa) o conceptos. 02/03/2021 Lic. Richard Jiménez Velasco 3

¿Qué es un objeto? Un objeto es una unidad atómica formada de un estado

¿Qué es un objeto? Un objeto es una unidad atómica formada de un estado y de un comportamiento. Proporciona una relación de encapsulación que asegura a la vez una fuerte cohesión interna y un débil acoplamiento con el exterior. El papel y responsabilidad de un objeto se manifiestan por el envío de mensajes, dentro de un escenario de comunicación 02/03/2021 Lic. Richard Jiménez Velasco 4

Representación de objetos En UML un objeto se representa de la siguiente forma: 02/03/2021

Representación de objetos En UML un objeto se representa de la siguiente forma: 02/03/2021 Lic. Richard Jiménez Velasco 5

Representación de objetos Podemos utilizar un nombre genérico en lugar de nombres individuales, utilizando

Representación de objetos Podemos utilizar un nombre genérico en lugar de nombres individuales, utilizando la siguiente notación. 02/03/2021 Lic. Richard Jiménez Velasco 6

Los objetos son abstracciones Una abstracción es una simplificación. Sólo incluyen características esenciales. Ignoran

Los objetos son abstracciones Una abstracción es una simplificación. Sólo incluyen características esenciales. Ignoran los elementos no relevantes. Una abstracción se define para señalar un punto de vista (de un observador). 02/03/2021 Lic. Richard Jiménez Velasco 7

Ejemplos de abstracciones Una persona Un alumno de la UPDS Un cliente de una

Ejemplos de abstracciones Una persona Un alumno de la UPDS Un cliente de una tienda Una transacción bancaria Un Crédito hipotecario 02/03/2021 Lic. Richard Jiménez Velasco 8

Características fundamentales de los objetos Estado Comportamiento Identidad 02/03/2021 Lic. Richard Jiménez Velasco 9

Características fundamentales de los objetos Estado Comportamiento Identidad 02/03/2021 Lic. Richard Jiménez Velasco 9

El estado de un objeto “El estado de un objeto abarca todas las propiedades

El estado de un objeto “El estado de un objeto abarca todas las propiedades (normalmente estáticas) del mismo más los valores actuales (normalmente dinámicos) de cada una de esas propiedades. ”[Booch] El estado agrupa los valores instantáneos de todos los atributos o propiedades de un objeto. Un atributo es una información que cualifica al objeto que la contiene. 02/03/2021 Lic. Richard Jiménez Velasco 10

El estado de un objeto Cada atributo toma un valor en un ámbito de

El estado de un objeto Cada atributo toma un valor en un ámbito de definición dado. El estado de un objeto, en un instante dado, corresponde a una selección de valores, entre todos los posibles valores de los diferentes atributos. El estado evoluciona con el tiempo. El estado de un objeto en un instante dado es la consecuencia de sus comportamientos pasados. 02/03/2021 Lic. Richard Jiménez Velasco 11

Representación del estado 02/03/2021 Lic. Richard Jiménez Velasco 12

Representación del estado 02/03/2021 Lic. Richard Jiménez Velasco 12

El comportamiento de un objeto El comportamiento describe las acciones y reacciones de un

El comportamiento de un objeto El comportamiento describe las acciones y reacciones de un objeto. Agrupa todas las competencias del objeto. Se representa mediante operaciones. Las operaciones de un objeto son consecuencia de un estímulo externo, representado en forma de un mensaje enviado por otro objeto. 02/03/2021 Lic. Richard Jiménez Velasco 13

El comportamiento de un objeto 02/03/2021 Lic. Richard Jiménez Velasco 14

El comportamiento de un objeto 02/03/2021 Lic. Richard Jiménez Velasco 14

El comportamiento de un objeto Términos del comportamiento de un objeto: n n Smalltalk:

El comportamiento de un objeto Términos del comportamiento de un objeto: n n Smalltalk: un objeto envía un mensaje a otro objeto. C++: Un objeto invoca una función miembro de otro objeto. Un mensaje es una operación que un objeto realiza sobre otro. Los términos operación y mensaje son intercambiables. 02/03/2021 Lic. Richard Jiménez Velasco 15

El comportamiento de un objeto El estado y el comportamiento de un objeto están

El comportamiento de un objeto El estado y el comportamiento de un objeto están relacionados. El comportamiento depende del estado. El estado es modificado por el comportamiento. 02/03/2021 Lic. Richard Jiménez Velasco 16

El comportamiento de un objeto 02/03/2021 Lic. Richard Jiménez Velasco 17

El comportamiento de un objeto 02/03/2021 Lic. Richard Jiménez Velasco 17

Identidad de un objeto (Oid) Todos los objetos poseen una identidad que caracteriza su

Identidad de un objeto (Oid) Todos los objetos poseen una identidad que caracteriza su propia existencia. La identidad permite distinguir los objetos de forma no ambigua independientemente de su estado. La identidad es un concepto que no se representa de manera específica en el modelado. 02/03/2021 Lic. Richard Jiménez Velasco 18

Identidad de un objeto (Oid) 02/03/2021 Lic. Richard Jiménez Velasco 19

Identidad de un objeto (Oid) 02/03/2021 Lic. Richard Jiménez Velasco 19

Identidad de un objeto (Oid) Cada objeto posee un Oid, que tiene las siguientes

Identidad de un objeto (Oid) Cada objeto posee un Oid, que tiene las siguientes características: n n n n Constituye un identificador único y global para cada objeto dentro del sistema. Es determinado en el momento de la creación del objeto. Es independiente de la localización física del objeto; provee completa independencia de localización. Es independiente del estado de un objeto. No cambia durante toda la vida del objeto. Un Oid no se reutiliza aunque el objeto deje de existir. No se tiene ningún control sobre los Oid’s y su manipulación resulta transparente. 02/03/2021 Lic. Richard Jiménez Velasco 20

Identidad de un objeto (Oid) Frecuentemente la identidad se obtiene a partir de un

Identidad de un objeto (Oid) Frecuentemente la identidad se obtiene a partir de un identificador procedente del ámbito del problema. Los lenguajes de objetos utilizan generalmente apuntadores para implementar los identificadores. La clave primaria en el modelo relacional de bases de datos es otra forma de implementar la identificación. 02/03/2021 Lic. Richard Jiménez Velasco 21

Comunicación entre objetos Aplicaciones = Sociedad de objetos colaborando. Los objetos trabajan en sinergia

Comunicación entre objetos Aplicaciones = Sociedad de objetos colaborando. Los objetos trabajan en sinergia a fin de realizar las funciones de la aplicación. El comportamiento global de una aplicación se basa en la comunicación de los objetos que la componen. 02/03/2021 Lic. Richard Jiménez Velasco 22

Comunicación entre objetos. Los objetos interactúan para realizar las funciones de la aplicación. La

Comunicación entre objetos. Los objetos interactúan para realizar las funciones de la aplicación. La naturaleza de las interacciones, esto es la dirección de los mensajes intercambiados, describe la manera general el comportamiento de los objetos: En este sentido, existen tres categorías de comportamiento: Actores, Servidores y Agentes. 02/03/2021 Lic. Richard Jiménez Velasco 23

Categorías de comportamiento Un Actor es un objeto que siempre es el origen de

Categorías de comportamiento Un Actor es un objeto que siempre es el origen de una interacción. Un Servidor es un objeto que nunca es el origen de una interacción. Siempre son el destinatario en un mensaje. Un Agente es al mismo tiempo un actor y un servidor. Reune las características de los actores y servidores. Son objetos que pueden interactuar con otros objetos al mismo tiempo, por iniciativa propia o a consecuencia de una solicitud externa. 02/03/2021 Lic. Richard Jiménez Velasco 24

Categorías de comportamiento 02/03/2021 Lic. Richard Jiménez Velasco 25

Categorías de comportamiento 02/03/2021 Lic. Richard Jiménez Velasco 25

El concepto de mensaje Los objetos interactúan entre sí. Se comunican intercambiando mensajes. El

El concepto de mensaje Los objetos interactúan entre sí. Se comunican intercambiando mensajes. El mensaje es la unidad de comunicación entre objetos. Es el soporte de una relación de comunicación que vincula, de forma dinámica, los objetos que han sido separados por el proceso de descomposición. 02/03/2021 Lic. Richard Jiménez Velasco 26

El Concepto de mensaje Un mensaje asegura la delegación de las tareas y garantiza

El Concepto de mensaje Un mensaje asegura la delegación de las tareas y garantiza el respeto de las restricciones. Los mensajes representan acontecimientos Permite reconstituir una función de la aplicación por la puesta en marcha de la colaboración de un grupo de objetos. 02/03/2021 Lic. Richard Jiménez Velasco 27

El concepto de mensaje Un mensaje agrupa los flujos de control y los flujos

El concepto de mensaje Un mensaje agrupa los flujos de control y los flujos de datos dentro de una entidad única. Es un concepto abstracto que puede implementarse según numerosas variantes: llamada de procedimiento, evento discreto, interrupción, datagrama UDP, búsqueda dinámica, etc. 02/03/2021 Lic. Richard Jiménez Velasco 28

Categorías de mensajes Los constructores, que crean objetos. Los destructores, que destruyen objetos. Los

Categorías de mensajes Los constructores, que crean objetos. Los destructores, que destruyen objetos. Los selectores, que devuelven todo o parte del estado de un objeto. Los modificadores, que cambian todo o parte del estado de un objeto. Los iteradores, que recorren una colección de objetos. 02/03/2021 Lic. Richard Jiménez Velasco 29

Las Clases El mundo está constituido por objetos numerosos y muy diversos, algunos de

Las Clases El mundo está constituido por objetos numerosos y muy diversos, algunos de gran complejidad. Para reducir la complejidad y comprender mejor el mundo real, el ser humano tiende a agrupar los elementos que se parecen. Agrupar los objetos a partir de criterios de semejanza da lugar a la clasificación. Así, el ser humano ha clasificado los animales, las plantas, los insectos, etc. 02/03/2021 Lic. Richard Jiménez Velasco 30

La Clase La clase es una descripción abstracta de un conjunto de objetos. La

La Clase La clase es una descripción abstracta de un conjunto de objetos. La clase identifica las características comunes de un conjunto de objetos. La clase describe el dominio de definición de un conjunto de objetos. Cada objeto pertenece a una clase. 02/03/2021 Lic. Richard Jiménez Velasco 31

La Clase Las generalidades están contenidas en la clase y las particularidades en los

La Clase Las generalidades están contenidas en la clase y las particularidades en los objetos. Los objetos se construyen a partir de un proceso conocido como instanciación. Así, todo objeto es una instancia de una clase. 02/03/2021 Lic. Richard Jiménez Velasco 32

Representación de una clase 02/03/2021 Lic. Richard Jiménez Velasco 33

Representación de una clase 02/03/2021 Lic. Richard Jiménez Velasco 33

Descripción de las Clases Se separa en dos partes: n n La especificación de

Descripción de las Clases Se separa en dos partes: n n La especificación de una clase, también conocida como interfaz, que describe el dominio de definición y las propiedades de las instancias de esta clase (tipo de datos) La implementación de la clase, que describe cómo se realiza la especificación. 02/03/2021 Lic. Richard Jiménez Velasco 34

Ejercicios Crear una clase para el objeto automóvil Crear una clase para el objeto

Ejercicios Crear una clase para el objeto automóvil Crear una clase para el objeto Persona Practica en le laboratorio usando C# 02/03/2021 Lic. Richard Jiménez Velasco 35

La noción de contrato Una clase firma un contrato con otras clases. Una clase

La noción de contrato Una clase firma un contrato con otras clases. Una clase se compromete a proporcionar los servicios publicados en su especificación Las demás clases se comprometen a no hacer uso de otros conocimientos que no sean los descritos en la especificación. 02/03/2021 Lic. Richard Jiménez Velasco 36

Encapsulamiento La separación de la especificación y la implementación de una clase eleva el

Encapsulamiento La separación de la especificación y la implementación de una clase eleva el nivel de abstracción. La especificación de una clase define la parte visible de los objetos. Los detalles se ocultan en la implementación. La ocultación de los detalles se conoce como encapsulamiento. 02/03/2021 Lic. Richard Jiménez Velasco 37

Beneficios del encapsulamiento Los datos encapsulados están protegidos de accesos improcedentes, lo que permite

Beneficios del encapsulamiento Los datos encapsulados están protegidos de accesos improcedentes, lo que permite garantizar su integridad. Los clientes de una abstracción no dependen de la implementación de la abstracción, sino únicamente de su especificación. 02/03/2021 Lic. Richard Jiménez Velasco 38

Encapsulamiento Los valores de los atributos de un objeto se encapsulan en el objeto

Encapsulamiento Los valores de los atributos de un objeto se encapsulan en el objeto y no pueden ser manipulados directamente por los demás objetos. Sólo a través de las operaciones declaradas en la especificación de la clase se pueden realizar los accesos a los atributos de un objeto. 02/03/2021 Lic. Richard Jiménez Velasco 39

Reglas de visibilidad Completan y precisan la noción de encapsulamiento. Flexibilizan el grado de

Reglas de visibilidad Completan y precisan la noción de encapsulamiento. Flexibilizan el grado de encapsulamiento y de protección, favoreciendo a las clases usuarios muy particulares, designadas en la especificación de la clase proveedora. 02/03/2021 Lic. Richard Jiménez Velasco 40

Niveles de acceso (Privado) El nivel privado es el nivel más fuerte. Consta de

Niveles de acceso (Privado) El nivel privado es el nivel más fuerte. Consta de la parte privada de la clase. Es totalmente opaca y sólo las clases “amigas” (en términos de C++) pueden acceder a los atributos colocados en la parte privada. 02/03/2021 Lic. Richard Jiménez Velasco 41

Niveles de acceso (Protegido) El nivel protegido suaviza ligeramente el nivel de encapsulamiento. Los

Niveles de acceso (Protegido) El nivel protegido suaviza ligeramente el nivel de encapsulamiento. Los atributos colocados en la sección protegida de una clase son visibles a la vez para las clases “amigas” y las clases derivadas de la clase proveedora. Para todas las demás clases, los atributos no son visibles. 02/03/2021 Lic. Richard Jiménez Velasco 42

Niveles de acceso (Público) El nivel público es el nivel más bajo. Los atributos

Niveles de acceso (Público) El nivel público es el nivel más bajo. Los atributos en la sección pública son visibles a todas las clases. Rompe el encapsulamiento. 02/03/2021 Lic. Richard Jiménez Velasco 43

Representación de los niveles de acceso Los niveles público, protegido y privado son representados

Representación de los niveles de acceso Los niveles público, protegido y privado son representados gráficamente en las clases mediante los caracteres +, # y -, respectivamente. 02/03/2021 Lic. Richard Jiménez Velasco 44

Ejemplo de encapsulamiento 02/03/2021 Lic. Richard Jiménez Velasco 45

Ejemplo de encapsulamiento 02/03/2021 Lic. Richard Jiménez Velasco 45

Atributos de una clase Los atributos de una clase pueden especificarse mediante la siguiente

Atributos de una clase Los atributos de una clase pueden especificarse mediante la siguiente sintaxis: Visibilidad nombre : tipo = valor_predeterminado n n Visibilidad: Nivel de acceso del atributo (+, -, #). Nombre: Identificador del atributo. Tipo: Indica el tipo o dominio del atributo Valor_predeterminado: Valor inicial del atributo, opcional. 02/03/2021 Lic. Richard Jiménez Velasco 46

Operaciones de una clase La sintaxis de una operación es: Visibilidad nombre(lista_parámetros) : tipo_de_valor_de_retorno

Operaciones de una clase La sintaxis de una operación es: Visibilidad nombre(lista_parámetros) : tipo_de_valor_de_retorno {cadena_de_propiedades} n n n Visibilidad: Nivel de acceso de la operación (+, -, #). Nombre: Identificador de la operación. Lista_parámetros: Parámetros opcionales, cuya sintaxis es la misma que la de los atributos. Tipo_de_valor_de_retorno: Especificación opcional dependiente del LP. Cadena_de_propiedades: Indica valores de propiedad que se aplican a la operación específica. 02/03/2021 Lic. Richard Jiménez Velasco 47

Ejercicios Implementar las clases Persona y Automóvil con sus respectivos métodos y mensajes 02/03/2021

Ejercicios Implementar las clases Persona y Automóvil con sus respectivos métodos y mensajes 02/03/2021 Lic. Richard Jiménez Velasco 48

Gracias 02/03/2021 Lic. Richard Jiménez Velasco 49

Gracias 02/03/2021 Lic. Richard Jiménez Velasco 49