Title: Presentaci
1Universidad 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
2Objetos y Clases
3Qué 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.
4Qué 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
5Representación de objetos
- En UML un objeto se representa de la siguiente
forma
6Representación de objetos
- Podemos utilizar un nombre genérico en lugar de
nombres individuales, utilizando la siguiente
notación.
7Los 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).
8Ejemplos de abstracciones
- Una persona
- Un alumno de la UPDS
- Un cliente de una tienda
- Una transacción bancaria
- Un Crédito hipotecario
9Características fundamentales de los objetos
- Estado
- Comportamiento
- Identidad
10El 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.
11El 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.
12Representación del estado
13El 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.
14El comportamiento de un objeto
15El comportamiento de un objeto
- Términos del comportamiento de un objeto
- 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.
16El 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.
17El comportamiento de un objeto
18Identidad 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.
19Identidad de un objeto (Oid)
20Identidad de un objeto (Oid)
- Cada objeto posee un Oid, que tiene las
siguientes características - 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 Oids y su
manipulación resulta transparente.
21Identidad 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.
22Comunicació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.
23Comunicació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.
24Categorí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.
25Categorías de comportamiento
26El 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.
27El 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.
28El 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.
29Categorí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.
30Las 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.
31La 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.
32La 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.
33Representación de una clase
34Descripción de las Clases
- Se separa en dos partes
- 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.
35Ejercicios
- Crear una clase para el objeto automóvil
- Crear una clase para el objeto Persona
- Practica en le laboratorio usando C
36La 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.
37Encapsulamiento
- 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.
38Beneficios 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.
39Encapsulamiento
- 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.
40Reglas 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.
41Niveles 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.
42Niveles 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.
43Niveles 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.
44Representació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.
45Ejemplo de encapsulamiento
46Atributos de una clase
- Los atributos de una clase pueden especificarse
mediante la siguiente sintaxis - Visibilidad nombre tipo valor_predeterminado
- 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.
47Operaciones de una clase
- La sintaxis de una operación es
- Visibilidad nombre(lista_parámetros)
tipo_de_valor_de_retorno cadena_de_propiedades - 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.
48Ejercicios
- Implementar las clases Persona y Automóvil con
sus respectivos métodos y mensajes
49