Beruflich Dokumente
Kultur Dokumente
e Ingeniera de la Computacin
Todo objeto O es instancia de una clase C. C es la clase generadora de O. C es el texto del software, O es una estructura de datos en tiempo de ejecucin, producida por algn mecanismo de creacin C posee ciertos atributos. Estos atributos determinan la forma del objeto: O es simplemente una coleccin de componentes, una por cada atributo
punto2D coordx: real coordy: real p:punto2D
creacin
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur Segundo Cuatrimestre de 2008
2 3
La clase punto2D tiene dos atributos reales. Como consecuencia, el objeto p posee dos valores reales
Referencias
Definicin: Una referencia es un valor que puede estar nulo o asociado. Si la referencia est asociada, entonces identifica un nico objeto entre los dems que componen el sistema. Usaremos flechas para indicar referencias asociadas a otros objetos en el sistema bj t l it
Identidad de un objeto
La nocin de referencia nos lleva al concepto de identidad de un objeto.
p
Todo bj t T d objeto creado d d durante l ejecucin d l sistema posee una t la j i del i t identidad nica, independiente de los valores del objeto. Dos objetos con identidades diferentes pueden tener campos idnticos.
clonar(objetoX)
Pgina 1
Verdadero o falso?:
l=l2 ? p1=p2 ? l.igual(l2) ? l.igual_prof(l2) ? p1.igual(p2) ? l2.igual_prof(l3) ? l2.igual(l3) ?
Objetos dependientes directos Los objetos dependientes directos de un objeto O son los objetos asociados a alguno de sus campos de tipo referencia. Los objetos dependientes de un objeto O es el conjunto de objetos formados por el objeto mismo, junto con (recursivamente) los dependientes de sus dependientes directos
Escribir o leer objetos de campos simples no trae ningn problema. La tarea es ms complicada cuando el objeto contiene campos con referencias! Por ejemplo, si tenemos que conservar un objeto de tipo lnea
Referencias
Subobjetos
Pgina 2
2 3
p2:Punto2D
1 10
Manipulacin de objetos: por valor Otros ejemplos de clases que contienen atributos expandidos:
Clase Automvil Clase Universidad
1..* Empleado
1.. 1..*
Hijo
ClaseA
ClaseB
0..*
Oferta
Pgina 3
Motor
La nocin de subobjeto implica que el contenido slo puede ser conocido por el objeto continente Es posible sin embargo que el subobjeto referencie a otros objetos que no son el que lo contiene Una entidad manejada con semntica por valor no puede ser nula. El tiempo de vida del subobjeto es el tiempo de vida del objeto que lo contiene.
Universidad
1..* Facultad
Manipulacion de objetos: por valor La construccin (creacin) de un objeto involucra implcitamente la construccin de todos los subobjetos que contiene No es posible declarar como expandido una entidad de una clase que directa o indirectamente se referencia a si msma:
ClaseX
B: ClaseY
Manipulacion de objetos: por valor Es posible definir clases expandidas. Las clases expandidas son clases cuyas instancias sern siempre manejadas por semntica por valor. Las clases que corresponden a los tipos bsicos p mencionados anteriormente son todas expandidas.
ClaseX {expandida} atributos servicios
ClaseY
C: ClaseX
x
x y
y
expandido x clonar(y) x.copiar(y)
referencia
Copia de referencias
referencia expandido
x.copiar(y)
y no puede ser nula
Pgina 4
x = y
y
referencia
Comparacin de identidades
Manejo de agrupacin de datos con identidad Eficiencia en el espacio de memoria Problemas: dynamic aliasing
referencia expandido
x.igual(y)
Falso si y es nula
Ambas herramientas sirven para definir dos tipos de relaciones entre objetos. Es necesario identificar correctamente cuando utilizar cada una en un modelo en particular
Pgina 5