Académique Documents
Professionnel Documents
Culture Documents
Objetos
Prof. Wenceslao Chávez Bedoya
1
Temario
Objeto – Mensaje
Principios del Software
Orientado a Objetos
Clases
Encapsulamiento
Polimorfismo
Agregación
El mecanismo de
Herencia
2
Objeto
Objeto = todo lo que nos rodea, concretos
como abstractos
3
¿Qué es un Objeto?
Truck
Entidad conceptual
Chemical Process
5
Concepto de Objeto
OBJETO = IDENTIDAD +
COMPORTAMIENTO +
ESTADO
6
Un Objeto Tiene Estado
El estado de un objeto es una de las posibles
condiciones en que el objeto puede existir
El estado normalmente cambia en el
transcurso del tiempo
El estado de un objeto es implementado por un
conjunto de propiedades (llamadas atributos),
con los valores de las propiedades, además de
las conexiones que deben tener con otros
objetos
a + b = 10
Nombre: Joyce Clark
Nº Empleado: 567138
Fecha de Contr.: 21 de marzo 1987
Estado: Adjunto
Profesor Clark 7
Un Objeto Tiene
Comportamiento
El comportamiento de un objeto determina cómo
éste actúa y reacciona frente a las peticiones de
otros objetos
El comportamiento de un objeto es modelado
por un conjunto de mensajes a los que puede
responder (las operaciones que el objeto puede
realizar)
a + b = 10
Asignación del
profesor Clark
(Retorna:confirmación)
Registro del
Sistema Curso Algebra 8
101
Un Objeto tiene Identidad
11
Objeto - Estado
Estado (Información que el objeto conoce)
Un objeto contiene una fracción de la
información total del sistema...
... representada en forma de:
otros objetos, o bien,
12
Objeto - Mensaje
Objeto - Mensaje - Objeto
La única forma de alterar el estado interno de un objeto es
por medio del envío de un mensaje.
Dicho mensaje se resuelve por la ejecución de un método
del objeto receptor.
13
PRINCIPIOS SOFTWARE ORIENTADO A
OBJETOS
14
Abstracción
Es la representación de las
características esenciales de un
objeto, así como de su
comportamiento.
Definir una abstracción significa
describir una entidad del mundo real,
no importando lo compleja que pueda
ser, representando sus características
y comportamiento.
15
Encapsulamiento
Mecanismo que permite unir, en una
única abstracción, todas las
propiedades (caracteristicas) y
funcionalidades (comportamiento) de
una entidad.
16
Encapsulamiento
Encapsulamiento = Información + Operaciones.
17
Principio de Información Oculta
Consiste en la capacidad de proveer
la posibilidad de ocultar los detalles
de la representación interna de un
objeto y exponer solo aquellos
detalles necesarios para el resto del
sistema.
Los otros objetos dependerán de un
comportamiento especifico y no de la
implementación interna de un objeto.
18
Principio de Información oculta
19
Principio Cliente-Servidor
Se basa en la interacción de entre dos
Entidades: el Cliente y el Servidor. Un
Cliente hace solicitudes al Servidor
para que éste realice servicios.
En el enfoque Orientado a Objetos
ambos, Cliente y Servidor, son Clases
u Objetos.
20
¿De quién es Cliente una Clase?
De sus Ancestros (Usa
exclusivamente sus métodos).
De Objetos de otras Clases (Usa
exclusivamente sus métodos).
De si misma.
21
Jerarquías
Una jerarquía es la que nos permite
ordenar y relacionar las abstracciones
o clases.
Generalización/Especialización.
Generalmente conocida como
Herencia, la cual define una relación
entre clases en donde una comparte
la estructura y comportamiento de
una o mas clases.
22
CLASES
Una clase es una descripción de un grupo
de objetos con propiedades en común
(atributos), comportamiento similar
(operaciones), la misma manera de
relacionarse entre objetos (asociaciones y
agregados) y una semántica en común
23
Ejemplo de una Clase
Clase
Curso
Estructura Comportamiento
Nombre Agregar un alumno
Ubicación Borrar un alumno
a + b = 10
Días ofrecidos Dar una lista del curso
Horas Créditos Determinar si está lleno
Horario de inicio
Horario de término
24
Clases de Objetos
¿Cuántas clases ve?
25
Encontrando Clases
Una clase debe capturar una y solo una abstracción clave
Mala abstracción: La clase estudiante que conoce la
información del estudiante y el programa del actual
semestre del estudiante
Buena abstracción: Clases separadas para estudiantes y
programas del estudiante
Algebra 101
Historia Arte
Química
Español 101
26
Nombramiento de Clases
El nombre de la clase debe ser el
sustantivo singular que mejor caracterice
la abstracción
La dificultad al nombrar la clase revela una
pobre definición de la abstracción
Los nombres deben provenir directamente
del vocabulario del dominio
27
Guía de estilo en el
nombramiento de clases
Una guía de estilo debe dictar convenciones para el
nombramiento de clases
Ejemplo de guía de estilo
Las clases son nombradas usando sustantivos
singulares
Los nombres de las clases comienzan con letra
mayúscula
No se usa el subrayado
Los nombres compuestos por múltiples palabras se
ponen juntos y la primera letra de cada palabra se
escribe con mayúscula
Ejemplo: Estudiante, Profesor, SistemaDePago
28
Definiendo la Semántica de las
Clases
Después de nombrar las clases, debe
hacerse un informe descriptivo conciso
Concentrarse en el propósito de la clase,
no en su implementación
El nombre y la descripción de la clase
sirven como base para un modelo de
diccionario
Fijarse en los “QUE” e ignorar los “COMO”
29
Muestra de las Entradas de un
Modelo de Diccionario
Nombre: InformaciónDelEstudiante
Definición de Trabajo: Información de una
persona registrada para asistir a clases
en la universidad
Nombre: Curso
Definición de Trabajo: Una clase ofrecida
por la universidad
Mientras más se descubre del problema, se refina la definición
de la clase y se agregan nuevas clases al modelo de diccionario
30
La Relación Entre Clases y
Objetos
Una clase es una definición abstracta de un
objeto
Define la estructura y el comportamiento
de cada objeto en la clase
Sirve como modelo para la creación de
objetos
Los objetos pueden ser agrupados en clases
Profesor
Objetos
32
Objetos: Polimorfismo
• Es la cualidad que poseen los objetos de
“distintas especies” de “implementar” un
mismo “mensaje”, cada uno a su
conveniencia.
33
Herencia
La herencia define una relación entre clases donde
una clase comparte la estructura y/o
comportamiento con una o más clases
La herencia define una jerarquía de abstracciones
en que una subclase herede desde una o más
superclases
Con la herencia unitaria, la subclase hereda
desde una única superclase
Con la herencia múltiple, la subclase hereda
desde más de una superclase
La herencia es una relación “es un” o “tipo de”
34
Dibujando una Herencia
Jerárquica
RegistroInformaciónUsuario
Superclase
Relación de Herencia
InformaciónEstudiante
Subclase
35
¿Qué es heredado?
Una clase hereda de sus padres:
Atributos
Operaciones
Relaciones
Una subclase puede:
Agregar atributos, operaciones y relaciones
adicionales
Redefinir las operaciones heredadas (¡tenga
cuidado!)
La herencia apalanca las similaridades entre las clases 36
Heredando Atributos
Los atributos se definen en el nivel más alto en la
jerarquía de herencia en la que son aplicados
Las subclases de una clase heredan todos los
atributos
Cada subclase puede añadir atributos adicionales
VehículoTerrestre
Peso
númeroLicencia
Un camión tiene tres atributos:
númeroLicencia
peso
tonelaje
Auto Camión
tonelaje 37
Heredando Operaciones
Las operaciones son definidas en el más alto nivel
en la jerarquía de herencia en que son aplicables.
Las subclases heredan todas las operaciones de
una clase
Cada subclase puede aumentar o redefinir las
operaciones heredadas
VehículoTerrestre
peso
Un camión tiene tres atributos:
númeroLicencia númeroLicencia
registrar( )
peso
tonelaje
y dos operaciones:
registrar()
Auto Camión obtenerImpuestos()
tonelaje 38
obtenerImpuestos( )
Herencia
Generalización / Especialización
Agregación
Asociación
39
Heredando Relaciones
Las relaciones también son heredados y deben ser
definidas en el más alto nivel de la jerarquía de
herencia en la cual son aplicables
Las subclases de una clase heredan todas las
relaciones
Cada subclase puede participar en relaciones
adicionales
VehículoTerrestre Persona
peso dueño
númeroLicencia 0..* 1
Un auto es relacionado con
registrar( ) un propietario
Un camión es relacionado
con un propietario
Auto Camión Trailer Un camión también tiene un
tonelaje trailer
obtenerImpuestos( ) 40
Herencia vs. Agregación
Herencia Agregación
41
Window y Scrollbar
Window Scrollbar
WindowWithScrollbar
Un WindowWithScrollbar “tiene un” Window
Un WindowWithScrollbar “tiene un” Scrollbar
42
Window y Scrollbar (cont.)
Window
Window Scrollbar
WindowWithScrollbar Scrollbar
1 1
WindowWithScrollbar
43
Síntesis: Objetos
“Un objeto encapsula un estado y un
comportamiento”
Distribución de la Información -
Responsabilidad
Objeto encapsulado => Acceso Controlado =
Integridad
Objeto - Mensaje
Red de “Objetos Cooperantes” = Sistema
Red de “Objetos Cooperantes Polimórficos” =
Sistema con valor agregado ( Reusable, +
Mantenible, ...)
44
Caso de Estudio
Registración de estudiantes y profesores a
cursos. (1/4)
El nuevo sistema deberá permitir a los estudiantes a
seleccionar cuatro (4) cursos ofrecidos para el semestre
actual. Además, cada estudiante puede seleccionar dos
(2) cursos alternativos, para el caso de que algún curso
seleccionado este cerrado a la inscripción (por cupo
limitado) o bien por haber sido cancelado.
Un curso ofrecido no puede tener mas de diez (10)
estudiantes registrados ni menos de tres (3). Si se
registran diez estudiantes a un curso, este se cierra, y si
se registran tres o menos, se cancela la oferta de ese
curso. 45
Caso de Estudio
46
Caso de Estudio
48
Caso de Estudio
Actores:
Estudiante
Sistema de cobro
Caso de Uso:
Registrar Cursos
49
Caso de Estudio
Objetos principales
Estudiante
un estudiante deberá poder responder a:
Identificación (nombre y apellido)
Código de alumno
Calendario del semestre actual (materias a las que esta anotado)
Cursos en los que esta registrado en el semestre actual
un estudiante posee: (en variables de instancia)
Nombre y apellido
Código de alumno
Calendario
(recordar que se acceden a las variables de instancia solo a través de
los métodos correspondientes. = encapsulamiento)
50
Caso de Estudio
Objetos principales
Curso Disponible:
un curso deberá poder responder a:
código de identificación
cantidad de alumnos registrados
estado (cerrado, abierto, cancelado)
datos del profesor que dicta el curso
datos del departamento
un curso posee: (en variables de instancia)
un código de identificación
un estado
nombre y apellido del profesor que dicta el curso
51
Caso de Estudio
En síntesis:
identificamos a los objetos de nuestro problema, luego ...
les asignamos responsabilidades (comportamiento)
los clasificamos por especies (teniendo en cuenta el
comportamiento en común que poseen)
53