RELACIONES ENTRE CLASES COMPOSICIN ASOCIACIN USO HERENCIA Definicin

  • Slides: 24
Download presentation
RELACIONES ENTRE CLASES COMPOSICIÓN – ASOCIACIÓN – USO – HERENCIA

RELACIONES ENTRE CLASES COMPOSICIÓN – ASOCIACIÓN – USO – HERENCIA

Definición de relaciones Una relación es un vinculo entre dos objetos, este vinculo, se

Definición de relaciones Una relación es un vinculo entre dos objetos, este vinculo, se presenta por que, ambos objetos, se necesitan mutuamente para lograr la realización de una actividad o la realización de unos servicios. Estas relaciones nacen por la misma dinámica social o por que la naturaleza así lo estableció. Que nunca se me olvide: LAS RELACIONES DEPENDEN DEL CONTEXTO “Dominio del Problema”

Definición de relaciones Vehículo Hijos es ia i p ro m r ad es

Definición de relaciones Vehículo Hijos es ia i p ro m r ad es ati en d e Pacientes e Empresa Cuenta de Ahorro p n tie trabaja para ee pos ar et e a d na ig as devenga Póliza de Seguro Sueldo diri ge PERSONA Asignaturas

Tipos de relaciones entre clases q Composición q Agregación q Asociación q Dependencia –

Tipos de relaciones entre clases q Composición q Agregación q Asociación q Dependencia – Uso q Herencia

Composición (Definición) • Se constituye entre el todo y la parte. • La clase

Composición (Definición) • 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 más pequeños; un coche es un conjunto de motor y carrocería, 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 colección y además de ello la clase que contiene la colección debe tener un método que agregue los elementos a la colección.

Composición (Notación) o La notación para representar las composiciones, es una línea con un

Composición (Notación) o La notación para representar las composiciones, es una línea con un rombo lleno en el extremo apuntando a la clase todo

Composición (Implementación) Public class Persona { private int id; private String nombre; private String

Composición (Implementación) Public class Persona { private int id; private String nombre; private String apellido; public Cuenta cuenta = new Cuenta(); public int get. Id() { return id; } public void set. Id(int id) { this. id=id; } public string get. Nombre() { return nombre; } public void set. Nombre(String nombre) { this. nombre=nombre; } public string get. Apellido() { return apellido; } public void set. Apellido(String apellido) { this. apellido=apellido; } public int get. Cuenta() { return cuenta; } public void set. Cuenta(Cuenta cuenta) { this. cuenta=cuenta; } } public class Cuenta { private int num. Cuenta; private double saldo; public int get. Num. Cuenta() { return Num. Cuenta; } public void set. Num. Cuenta(int num. Cuenta) { this. num. Cuenta=num. Cuenta; } public double get. Saldo() { return saldo; } public void set. Saldo(double saldo) { this. saldo=saldo; } }

Agregación (Definición) • Existe una relación de agregación si en el enunciado del problema

Agregación (Definición) • Existe una relación de agregación 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 colección, es decir un array, vector, etc, y además de ello la clase que contiene la colección debe tener un método que agregue los elementos a la colección.

Agregación (Notación) o La notación para representar las agregaciones, es una línea con un

Agregación (Notación) o La notación para representar las agregaciones, es una línea con un rombo vacío en el extremo apuntando a la clase todo

Agregación (Implementación) public class Automovil { private String placa; private int num. Puertas; private

Agregación (Implementación) public class Automovil { private String placa; private int num. Puertas; private String marca; private String modelo; public Motor motor; public class Motor { private int num. Motor; private int revoluciones. Por. Min; public int get. Num. Motor() { } public void set. Num. Motor(int num. Motor) { } public String get. Placa() { } public int get. Revoluciones() { } public void set. Placa(String placa) { } public int get. Num. Puertas() { } public void set. Num. Puertas(int num) { } public String get. Marca() { } public void set. Marca(String marca) { } public String get. Modelo() { } public void set. Modelo(String modelo) { } } public void set. Revoluciones(int rev) { } }

Dependencia (Definición) • Es una relación de uso, es decir que una clase utiliza

Dependencia (Definición) • Es una relación 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 relación momentánea que se establece entre un “cliente” y un “servidor”. • La relación Dependencia también se conoce con el nombre uso • Se pasa la creación del objeto como parámetro • Este tipo de relación hace referencia, a los parámetros que se pasan en un método

Dependencia (Notación) o La notación para representar la dependencia, es una línea discontinua o

Dependencia (Notación) o La notación para representar la dependencia, es una línea discontinua o Ej) La clase B necesita de un objeto de la clase A para llevar a cabo una funcionalidad, entonces la notación es:

Dependencia (Implementación) En un método de B aparece un objeto auxiliar como argumento

Dependencia (Implementación) En un método de B aparece un objeto auxiliar como argumento

Dependencia (Implementación) public class Herramienta { private String nombre; private String funcionalidad; public String

Dependencia (Implementación) public class Herramienta { private String nombre; private String funcionalidad; public String get. Nombre() { return nombre; } public class Mecanico { …. . public void reparar() { Herramienta ob = new Herramienta() public void set. Nombre(String nombre) { this. nombre=nombre; } public String get. Funcionalidad() { return funcionalidad; } public void set. Funcionalidad(String funcionalidad) { this. funcionalidad=funcionalidad; } } } …. }

Asociación (Definición) • Son relaciones del tipo "pertenece_a" o "está_asociado_con". Una asociación representa una

Asociación (Definición) • Son relaciones del tipo "pertenece_a" o "está_asociado_con". Una asociación representa una relación 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 conexión entre los objetos se realiza recibiendo la referencia de uno de ellos en el constructor u otro método. • Al menos un atributo de la clase B es una referencia a un objeto de la clase A • Se deben indicar las cardinalidades

Asociación(Notación) Esta relación se representa en UML mediante una línea que une ambas clases

Asociación(Notación) Esta relación se representa en UML mediante una línea que une ambas clases

Asociación (Implementación) • Se implementa introduciendo referencias a objetos de la clase destino de

Asociación (Implementación) • Se implementa introduciendo referencias a objetos de la clase destino de la relación como atributos de la clase origen • Si la relación tiene cardinalidad superior a 1, será necesario utilizar una colección. public class Alcalde { private int identificacion; private String nombre; private String apellido; public Municipio gobierna; public int get. Identificacion() { } public void set. Identificacion(int identificacion) { } public String get. Nombre() { } public void set. Nombre(String nombre) { } }

Herencia (Definición) • Relaciones del tipo es un/ es una • Permite que una

Herencia (Definición) • Relaciones del tipo es un/ es una • Permite que una clase obtenga la funcionalidad de otra añadiendo nuevos atributos y métodos (o modificando el comportamiento de los existentes) • Clase A = Clase Base – Clase Padre - Super. Clase • Clase B = clase Derivada – Clase hija – subclase

Herencia (Definición) • Un objeto de una subclase hereda todos los atributos y métodos

Herencia (Definición) • Un objeto de una subclase hereda todos los atributos y métodos de la superclase • Una subclase es una forma restringida de una superclase

Herencia (Notación e implementación) Ingeniería Directa public class Estudiante{ } public class Estudiante. Graduado

Herencia (Notación e implementación) Ingeniería Directa public class Estudiante{ } public class Estudiante. Graduado extends Estudiante{ } public class Estudiante. Activo extends Estudiante{ }

Herencia (Notación e implementación)

Herencia (Notación e implementación)

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 1. Una

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 1. Una empresa dedicada a la venta de vehículos tiene a disposición de los clientes varias clases (camión, automóvil, buces para servicio municipal y buces para servicio intermunicipal). La empresa maneja información común para todas estas clases de vehículos, tales como: marca del vehículo, color del vehículo, placa del vehículo y modelo del vehículo. Para cada clase de vehículo maneja la siguiente información especifica: camión (capacidad y tipo de carga), automóvil (numero de puertas, disposición –particular, servicio público -, buces municipales (empresa, chofer, ruta), buces intermunicpales (empresa, chofer, ciudad origen, ciudad destino).

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 2. Una

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 2. Una empresa maneja dos líneas de productos perecederos y no perecederos. La información que utiliza para llevar un registro de dichos productos es: IVA, nombre del producto, fecha de emisión (compuesta por subatributos – día/mes/año -) y precio del producto. Adicionalmente los productos perecederos manejan la siguiente información: fecha de vencimiento (compuesta por subatributos – día/mes/año -)

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 3. Un

Herencia - Ejercicios Construya un diagrama de clase para la siguiente situación: 3. Un hospital necesita que se le organice la información 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 información como el Nombre, Dirección, Teléfono, Edad y los divide en dos categorías Médicos y Enfermeras, con respecto a estos maneja información como la fecha de ingreso, fecha de terminación del contrato (ambos compuesto de día/mes/año), hora de entrada, hora de salida y salario. Adicionalmente para los médicos maneja la siguiente información especialidad, nivel (1 menos de dos años, 2 entre 1 y 4 años y 3 más de tres años). En cuanto a las enfermeras se maneja la categoría (auxiliar, instrumentadora, profesional). Para los pacientes maneja la siguiente información: Nombre, Dirección, Teléfono, Edad, Fecha de ingreso, fecho de alta (ambos compuesto de día/mes/año), motivo de consulta, medicamentos