Está en la página 1de 24

RELACIONES ENTRE CLASES

COMPOSICIN ASOCIACIN USO HERENCIA

Definicin de relaciones
Una relacin es un vinculo entre dos objetos, este vinculo, se presenta por que, ambos objetos, se necesitan mutuamente para lograr la realizacin de una actividad o la realizacin de unos servicios. Estas relaciones nacen por la misma dinmica social o por que la naturaleza as lo estableci. Que nunca se me olvide: LAS RELACIONES DEPENDEN DEL CONTEXTO Dominio del Problema

Definicin de relaciones
Hijos Vehculo

Pacientes

Pliza de Seguro

Empresa

trabaja para

devenga

Sueldo

Cuenta de Ahorro

PERSONA

Asignaturas

Tipos de relaciones entre clases


Composicin

Agregacin Asociacin Dependencia Uso Herencia

Composicin (Definicin)
Se constituye entre el todo y la parte. La clase todo controla la existencia de las clases parte. Mientras existe el todo=existe la parte. Al crear un objeto del todo se crea un objeto de la parte Objeto A tiene un/posee un/contiene un objeto de la clase B Los objetos suelen estar compuestos de conjuntos de objetos ms pequeos; un coche es un conjunto de motor y carrocera, un motor es un conjunto de piezas, y as sucesivamente. Si se elimina el todo se eliminan las partes. Contiene un atributo, que puede ser una coleccin y adems de ello la clase que contiene la coleccin debe tener un mtodo que agregue los elementos a la coleccin.

Composicin (Notacin)
o La notacin para representar las composiciones, es una lnea con un rombo lleno en el extremo apuntando a la clase todo

Composicin (Implementacin)
Public class Persona { private int id; private String nombre; private String apellido; public Cuenta cuenta = new Cuenta(); public int getId() { return id; } public void setId(int id) { this.id=id; } public string getNombre() { return nombre; } public void setNombre(String nombre) { this.nombre=nombre; } public string getApellido() { return apellido; } public void setApellido(String apellido) { this.apellido=apellido; } public int getCuenta() { return cuenta; } public void setCuenta(Cuenta cuenta) { this.cuenta=cuenta; } }
public class Cuenta { private int numCuenta; private double saldo; public int getNumCuenta() { return NumCuenta; } public void setNumCuenta(int numCuenta) { this.numCuenta=numCuenta; } public double getSaldo() { return saldo; } public void setSaldo(double saldo) { this.saldo=saldo; } }

Agregacin (Definicin)
Existe una relacin de agregacin si en el enunciado del problema hay expresiones de la forma "tiene_un", "es_parte_de"...
Se constituye entre el todo y la parte. La existencia del todo no condiciona la existencia de la parte. Si se elimina el todo NO se eliminan las partes. Contiene un atributo, que puede ser una coleccin, es decir un array, vector, etc, y adems de ello la clase que contiene la coleccin debe tener un mtodo que agregue los elementos a la coleccin.

Agregacin (Notacin)
o La notacin para representar las agregaciones, es una lnea con un rombo vaco en el extremo apuntando a la clase todo

Agregacin (Implementacin)
public class Automovil { private String placa; private int numPuertas; private String marca; private String modelo; public Motor motor; public String getPlaca() { } public void setPlaca(String placa) { } public int getNumPuertas() { }
} public class Motor { private int numMotor; private int revolucionesPorMin; public int getNumMotor() { } public void setNumMotor(int numMotor) { } public int getRevoluciones() { } public void setRevoluciones(int rev) { }

public void setNumPuertas(int num) { }


public String getMarca() { } public void setMarca(String marca) { } public String getModelo() { } public void setModelo(String modelo) { } }

Dependencia (Definicin)
Es una relacin de uso, es decir que una clase utiliza a otra. Y si esta ltima se altera, la anterior se puede ver afectada.
Una clase depende de otra para llevar a cabo una tarea o para realizar su funcionamiento. es una relacin momentnea que se establece entre un cliente y un servidor. La relacin Dependencia tambin se conoce con el nombre uso Se pasa la creacin del objeto como parmetro Este tipo de relacin hace referencia, a los parmetros que se pasan en un mtodo

Dependencia (Notacin)
o La notacin para representar la dependencia, es una lnea discontinua

o Ej) La clase B necesita de un objeto de la clase A para llevar a cabo una funcionalidad, entonces la notacin es:

Dependencia (Implementacin)
En un mtodo de B aparece un objeto auxiliar como argumento

Dependencia (Implementacin)
public class Herramienta { private String nombre; private String funcionalidad;

public String getNombre() { return nombre; }


public void setNombre(String nombre) { this.nombre=nombre; } public String getFuncionalidad() { return funcionalidad; } public void setFuncionalidad(String funcionalidad) { this.funcionalidad=funcionalidad; } }

public class Mecanico { .. public void reparar() { Herramienta ob = new Herramienta() } . }

Asociacin (Definicin)
Son relaciones del tipo "pertenece_a" o "est_asociado_con". Una asociacin representa una relacin entre clases. Las asociaciones son los mecanismos que permite a los objetos comunicarse entre s.
se implementa ya sea declarando un atributo de tipo A en la clase B o haciendo un array de objetos de tipo A en la clase B. Normalmente la conexin entre los objetos se realiza recibiendo la referencia de uno de ellos en el constructor u otro mtodo. Al menos un atributo de la clase B es una referencia a un objeto de la clase A

Se deben indicar las cardinalidades

Asociacin(Notacin)
Esta relacin se representa en UML mediante una lnea que une ambas clases

Asociacin (Implementacin)
Se implementa introduciendo referencias a objetos de la clase destino de la relacin como atributos de la clase origen

Si la relacin tiene cardinalidad superior a 1, ser necesario utilizar una coleccin.


public class Alcalde { private int identificacion; private String nombre; private String apellido; public Municipio gobierna; public int getIdentificacion() { } public void setIdentificacion(int identificacion) { } public String getNombre() { } public void setNombre(String nombre) { } }

Herencia (Definicin)
Relaciones del tipo es un/ es una
Permite que una clase obtenga la funcionalidad de otra aadiendo nuevos atributos y mtodos (o modificando el comportamiento de los existentes) Clase A = Clase Base Clase Padre - SuperClase Clase B = clase Derivada Clase hija subclase

Herencia (Definicin)
Un objeto de una subclase hereda todos los atributos y mtodos de la superclase
Una subclase es una forma restringida de una superclase

Herencia (Notacin e implementacin)

Ingeniera Directa

public class Estudiante{ } public class EstudianteGraduado extends Estudiante{ } public class EstudianteActivo extends Estudiante{ }

Herencia (Notacin e implementacin)

Herencia - Ejercicios
Construya un diagrama de clase para la siguiente situacin: 1. Una empresa dedicada a la venta de vehculos tiene a disposicin de los clientes varias clases (camin, automvil, buces para servicio municipal y buces para servicio intermunicipal). La empresa maneja informacin comn para todas estas clases de vehculos, tales como: marca del vehculo, color del vehculo, placa del vehculo y modelo del vehculo. Para cada clase de vehculo maneja la siguiente informacin especifica: camin (capacidad y tipo de carga), automvil (numero de puertas, disposicin particular, servicio pblico -, buces municipales (empresa, chofer, ruta), buces intermunicpales (empresa, chofer, ciudad origen, ciudad destino).

Herencia - Ejercicios

Construya un diagrama de clase para la siguiente situacin: 2. Una empresa maneja dos lneas de productos perecederos y no perecederos. La informacin que utiliza para llevar un registro de dichos productos es: IVA, nombre del producto, fecha de emisin (compuesta por subatributos da/mes/ao -) y precio del producto. Adicionalmente los productos perecederos manejan la siguiente informacin: fecha de vencimiento (compuesta por subatributos da/mes/ao -)

Herencia - Ejercicios
Construya un diagrama de clase para la siguiente situacin: 3. Un hospital necesita que se le organice la informacin que maneja en cuanto al personal que diariamente labora dentro de l y los pacientes que son atendidos. En cuanto a los empleados maneja la informacin como el Nombre, Direccin, Telfono, Edad y los divide en dos categoras Mdicos y Enfermeras, con respecto a estos maneja informacin como la fecha de ingreso, fecha de terminacin del contrato (ambos compuesto de da/mes/ao), hora de entrada, hora de salida y salario. Adicionalmente para los mdicos maneja la siguiente informacin especialidad, nivel (1 menos de dos aos, 2 entre 1 y 4 aos y 3 ms de tres aos). En cuanto a las enfermeras se maneja la categora (auxiliar, instrumentadora, profesional). Para los pacientes maneja la siguiente informacin: Nombre, Direccin, Telfono, Edad, Fecha de ingreso, fecho de alta (ambos compuesto de da/mes/ao), motivo de consulta, medicamentos

También podría gustarte