160 likes | 342 Views
Relaciones entre Clases. Rosemary Torrico Bascopé. Introducción. Dado un problema , primero se identifican los objetos y por tanto las clases que lo definen . Luego se debe reflexionar sobre si existe alguna relación entre dichas clases .
E N D
Relaciones entre Clases Rosemary TorricoBascopé
Introducción • Dado un problema, primero se identifican los objetos y portantolasclasesque lo definen. • Luego se debereflexionarsobresiexistealgunarelación entre dichasclases. • Las relaciones entre clases son muyimportantes y debenidentificarse con claridadcuando se realizando un desarrolloorientado a objetos.
Introducción • Las relaciones entre clasespuedendeberse a un estado o comportameintocomún, tambien a que la clasenecesiteusarotraclase. • Aunquealgunasclasespuedenexistir de forma aislada, la mayoria no pueden y debencooperarunas con otras.
Tipos de clases • SegunBooch y Rumbaughexisten 3 tipos de clases: • Generalizaciones, “es un” • Asociaciones, “tiene un” o “es parte de” • Dependencias, “usa a” o “trabaja con”
Relación de Generalización • La relación “es un”, se da entre un elemento general y un casoespecíficio de eseelemento. • La relacion de generalizacion se presentacuandounaclasees un subtipo de otraclase. • Ejemplo: Un empleadoesuna persona. Persona Empleado
Relación de generalización… • Se conocetambiencomorelación de Herencia. • La subclase (clasehija) hereda los atributos y métodos de la clase padre, pudiendoañadir los suyospropios. Las relaciones de herencia den UML se representanporflecha con la puntavacía, apuntando a la clase padre Persona Empleado Estudiante La relación de herencia genera jerarquía entre lasclases Fijo Porcomisión
Relación de Asociación • Se da entre dos clases de distintanaturaleza, puedeexistirrelaciones de Asociación entre la mismaclase. • Cuandounaclaseestacompuestaestructuralmenteporotrasclases se dice que hay unarelacion de asociacion. • Cuando se usaalgunobjetocomoatributo de la clase. Es decirunaclasepuedeestarformadaporobjetos de otra u otrasclases. • Es posibleindicarcuántosobjetos (ejemplares de unaclase) estánconectados en unarelación de asociación, esto define la multiplicidad en la relación.
Cardinalidad o multiplicidad • Define cuántasinstancias de la clase A puedenestarasociadas con unainstancia de la clase B. • Si es un valor exacto se indicanumericamente. Ej. Unaempresatiene 2 empleados. • Si es un intervalo de posiblesvalores, se indica el valor mínimo y un valor máximo.Ej. Si los empleadospudieran ser entre 2 y 4. • Si son varios en númeroindefinido se usa un asterísco. 1 2 Empresa Empleado 1 2..4 Empresa Empleado 1 * Empresa Empleado
Asociacion - Agregación • A veces, se quiereindicarquetenemos un todocompuestoporpartes. En estecaso de habla de agregación. • En el diagrama de clases se usa un rombovacío, junto a la clasequerepresenta al todo. Ej. Unaempresacompuestapordepartamentos. 1 * Empresa Departamento
Ejemplo.de Asociacion. Consideremos un auto quetiene un motor, un chasis, 4 ruedas y un sistemas de transmision. A suvez, lasruedasconstan de neumático y un aro. Auto 1 1 1 1 4 1 1 1 Chasis Ruedas Transmisión Motor 1 1 1 1 Neumático Aro La relación de asociación se caracterizaporqueunaclasetienecomomiembrosobjetos de otraclase.
Relación de Dependencia • Es unarelación de utilización, donde un cambio de estado de un objeto(el independiente) afecta al estado de otro (el dependiente), pero no a la inversa. • En la prácticacuandounaclase se relaciona a otra a través de mensajes. Es decircuandopasacomouno de los parámetros un ejemplar la clasedependiente.
Relación de Dependencia… • Una clase depende de otra, cuando: uno de los parámetros o el tipo de retorno de cualquiera de los métodos de la clase dependiente es del tipo de la clase independiente. • En estarelaciónunaclaseutilizainformación y servicios de otra. • Si se afecta el comportamiento de la claseindependiente, se afecta el comportamiento de la clasedependiente. En UML la relacion de dependencia se representa pro unaflechadiscontinuadirigidahacia la clase de la cualdepende. Caja de ahorro Depósito
Comentario final • Desde el punto de vista general y a nivel elemental a vecessólo se distingue entre dos clases la relación de herencia y de uso (dependencia). Esto se observa en BlueJ.
Defina el diagrama de clasespara: • Un carro que tiene un motor a gasolina, el motor depende de la gasolina para moverse. • Un alumno depende del profesor para que le asigne la nota definitiva a la materia que esta cursando. • Una ficha de ajedrez depende del tablero y del jugador para moverse.
Bibliografía • https://sites.google.com/site/tutoriasdeingenieria/logica-o-o/que-es-la-logica-orientada-a-objetos-una-clase-basica/los-atributos-a-caracteristicas-de-las-clases-orientadas-a-objetos/lgica-oo-clase-3/los-objetos-en-la-logica-orientada-a-objetos/Trabajando-sistemas-oo-con-los-conceptos-basicos/06-El-constructor-de-las-clases/relaciones-entre-las-clases-de-un-sistema-orientado-a-objetos • http://www.unirioja.es/cu/jearansa/0910/archivos/EIPR_Tema02.pdf
Videos • http://www.youtube.com/watch?v=3xWMfhcQ9cs • http://www.youtube.com/watch?v=05ja74ZRu_E