comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Duda con multiplicidad en Java

  • 1 Respuestas
  • 17959 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Flemon

  • *
  • Underc0der
  • Mensajes: 235
  • Actividad:
    0%
  • Reputación 0
  • NO HAY FORMA DE DETENERME!!
    • Ver Perfil
    • Email
« en: Febrero 15, 2016, 01:30:21 pm »
Hola a todo el foro...
Bueno, volviendo a java después de llevar un largo tiempo sin tocarlo me tope con un problema al tratar de ejercitar con un cuadernillo viejo que tengo.

El diagrama de clases es el siguiente


del cual lo represente con las siguientes clases

Clase EmpresaConstructora
Código: Java
  1. package Punto2;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class EmpresaConstructora {
  7.    
  8.     private long id;
  9.    
  10.     private You are not allowed to view links. Register or Login nombre;
  11.  
  12.     private You are not allowed to view links. Register or Login rubro;
  13.  
  14.     private You are not allowed to view links. Register or Login direccion;
  15.    
  16.     private List<Barrio> barrios;
  17.    
  18.     public EmpresaConstructora() {
  19.     }
  20.  
  21.     public EmpresaConstructora(long id, You are not allowed to view links. Register or Login nombre, You are not allowed to view links. Register or Login rubro, You are not allowed to view links. Register or Login direccion) {
  22.         this.id = id;
  23.         this.nombre = nombre;
  24.         this.rubro = rubro;
  25.         this.direccion = direccion;
  26.         barrios = new ArrayList<>();
  27.     }
  28.    
  29.     public List<Barrio> getBarrios() {
  30.         return barrios;
  31.     }
  32.  
  33.     public void setBarrios(List<Barrio> barrios) {
  34.         this.barrios = barrios;
  35.     }
  36.    
  37.     public You are not allowed to view links. Register or Login getDireccion() {
  38.         return direccion;
  39.     }
  40.  
  41.     public void setDireccion(You are not allowed to view links. Register or Login direccion) {
  42.         this.direccion = direccion;
  43.     }
  44.  
  45.     public You are not allowed to view links. Register or Login getRubro() {
  46.         return rubro;
  47.     }
  48.  
  49.     public void setRubro(You are not allowed to view links. Register or Login rubro) {
  50.         this.rubro = rubro;
  51.     }
  52.  
  53.     public You are not allowed to view links. Register or Login getNombre() {
  54.         return nombre;
  55.     }
  56.  
  57.     public void setNombre(You are not allowed to view links. Register or Login nombre) {
  58.         this.nombre = nombre;
  59.     }
  60.  
  61.     public long getId() {
  62.         return id;
  63.     }
  64.  
  65.     public void setId(long id) {
  66.         this.id = id;
  67.     }
  68.  
  69. }
  70.  
  71.  

Clase Barrio
Código: Java
  1. package Punto2;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Barrio {
  7.    
  8.     private long id;
  9.  
  10.     private You are not allowed to view links. Register or Login nombre;
  11.  
  12.     private You are not allowed to view links. Register or Login distrito;
  13.    
  14.     private List<EmpresaConstructora> empresaConstructura;
  15.    
  16.     private List<Manzana> manzanas;
  17.    
  18.     public Barrio() {
  19.     }
  20.  
  21.     public Barrio(long id, You are not allowed to view links. Register or Login nombre, You are not allowed to view links. Register or Login distrito) {
  22.         this.id = id;
  23.         this.nombre = nombre;
  24.         this.distrito = distrito;
  25.         empresaConstructura = new ArrayList<>();
  26.         manzanas = new ArrayList<>();
  27.     }
  28.    
  29.     public List<EmpresaConstructora> getEmpresaConstructura() {
  30.         return empresaConstructura;
  31.     }
  32.  
  33.     public void setEmpresaConstructura(List<EmpresaConstructora> empresaConstructura) {
  34.         this.empresaConstructura = empresaConstructura;
  35.     }
  36.  
  37.     public List<Manzana> getManzanas() {
  38.         return manzanas;
  39.     }
  40.  
  41.     public void setManzanas(List<Manzana> manzanas) {
  42.         this.manzanas = manzanas;
  43.     }
  44.    
  45.     public You are not allowed to view links. Register or Login getDistrito() {
  46.         return distrito;
  47.     }
  48.  
  49.     public void setDistrito(You are not allowed to view links. Register or Login distrito) {
  50.         this.distrito = distrito;
  51.     }
  52.  
  53.     public You are not allowed to view links. Register or Login getNombre() {
  54.         return nombre;
  55.     }
  56.  
  57.     public void setNombre(You are not allowed to view links. Register or Login nombre) {
  58.         this.nombre = nombre;
  59.     }
  60.  
  61.     public long getId() {
  62.         return id;
  63.     }
  64.  
  65.     public void setId(long id) {
  66.         this.id = id;
  67.     }
  68.     public double getSuperficieTotalBarrio(){
  69.         //Retornar el total de metros del terreno del barrio teniendo en cuenta
  70.         //la superficie de las manzanas asociadas con el mismo
  71.         double resultado=0;
  72.         for (Manzana manzanas : manzanas) {
  73.             resultado= +manzanas.getSuperficieManzana();
  74.         }                
  75.         return resultado;
  76.     }
  77.     public double getSuperficieTotalCubiertaManzana(You are not allowed to view links. Register or Login letra){
  78.         //Retornar metros cuadraros cubiertos de una manzana especifica sumando la totalidad de metros
  79.         //cuadrados cubiertos de las viviendas que componen la manzana
  80.         //REUTILIZAR METODO getMetrosCuadradosCubiertos class Vivienda
  81.         double resultado = 0;
  82.        
  83.         return resultado;
  84.     }
  85.     public double getDatosVivienda(You are not allowed to view links. Register or Login letraManzana, int numeroVivienda){
  86.         //Retornar los datos de la calle, numero de Calle, superficieTerreno y superficieCubierta de una
  87.         //vivienda en particular
  88.         //En caso de no existir la vivienda emitir mensaje "La vivienda buscada no existe en el barrio"
  89.         double resultado=0;
  90.         return resultado;
  91.     }
  92. }
  93.  

Clase Manzana
Código: Java
  1. package Punto2;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Manzana {
  7.    
  8.     private long id;
  9.  
  10.     private You are not allowed to view links. Register or Login letra;
  11.  
  12.     private double superficieManzana;
  13.    
  14.     private List<Vivienda> viviendas;
  15.    
  16.     private Barrio barrios;
  17.    
  18.     public Manzana() {
  19.     }
  20.  
  21.     public Manzana(long id, You are not allowed to view links. Register or Login letra, double superficieManzana, Barrio barrios) {
  22.         this.id = id;
  23.         this.letra = letra;
  24.         this.superficieManzana = superficieManzana;
  25.         this.barrios = barrios;
  26.         viviendas = new ArrayList<>();
  27.     }
  28.    
  29.     public List<Vivienda> getViviendas() {
  30.         return viviendas;
  31.     }
  32.  
  33.     public void setViviendas(List<Vivienda> viviendas) {
  34.         this.viviendas = viviendas;
  35.     }
  36.    
  37.     public double getSuperficieManzana() {
  38.         return superficieManzana;
  39.     }
  40.    
  41.     public void setSuperficieManzana(double superficieManzana) {
  42.         this.superficieManzana = superficieManzana;
  43.     }
  44.  
  45.     public You are not allowed to view links. Register or Login getLetra() {
  46.         return letra;
  47.     }
  48.  
  49.     public void setLetra(You are not allowed to view links. Register or Login letra) {
  50.         this.letra = letra;
  51.     }
  52.  
  53.     public long getId() {
  54.         return id;
  55.     }
  56.  
  57.     public void setId(long id) {
  58.         this.id = id;
  59.     }
  60.  
  61. }
  62.  

Clase Vivienda
Código: Java
  1. package Punto2;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.List;
  5.  
  6. public class Vivienda {
  7.    
  8.     private long id;
  9.  
  10.     private int nroVivienda;
  11.  
  12.     private You are not allowed to view links. Register or Login calle;
  13.  
  14.     private int numeroCalle;
  15.  
  16.     private double superficieTerreno;
  17.    
  18.     private List<Habitacion> habitaciones;
  19.    
  20.     private Manzana manzanas;
  21.            
  22.     public Vivienda() {
  23.     }
  24.  
  25.     public Vivienda(long id, int nroVivienda, You are not allowed to view links. Register or Login calle, int numeroCalle, double superficieTerreno, Manzana manzanas) {
  26.         this.id = id;
  27.         this.nroVivienda = nroVivienda;
  28.         this.calle = calle;
  29.         this.numeroCalle = numeroCalle;
  30.         this.superficieTerreno = superficieTerreno;
  31.         this.manzanas = manzanas;
  32.         habitaciones = new ArrayList<>();
  33.     }
  34.  
  35.     public Manzana getManzanas() {
  36.         return manzanas;
  37.     }
  38.  
  39.     public void setManzanas(Manzana manzanas) {
  40.         this.manzanas = manzanas;
  41.     }  
  42.    
  43.     public double getSuperficieTerreno() {
  44.         return superficieTerreno;
  45.     }
  46.  
  47.     public List<Habitacion> getHabitaciones() {
  48.         return habitaciones;
  49.     }
  50.  
  51.     public void setHabitaciones(List<Habitacion> habitaciones) {
  52.         this.habitaciones = habitaciones;
  53.     }
  54.    
  55.     public void setSuperficieTerreno(double superficieTerreno) {
  56.         this.superficieTerreno = superficieTerreno;
  57.     }
  58.  
  59.     public int getNumeroCalle() {
  60.         return numeroCalle;
  61.     }
  62.  
  63.     public void setNumeroCalle(int numeroCalle) {
  64.         this.numeroCalle = numeroCalle;
  65.     }
  66.  
  67.     public You are not allowed to view links. Register or Login getCalle() {
  68.         return calle;
  69.     }
  70.  
  71.     public void setCalle(You are not allowed to view links. Register or Login calle) {
  72.         this.calle = calle;
  73.     }
  74.  
  75.     public int getNroVivienda() {
  76.         return nroVivienda;
  77.     }
  78.  
  79.     public void setNroVivienda(int nroVivienda) {
  80.         this.nroVivienda = nroVivienda;
  81.     }
  82.  
  83.     public long getId() {
  84.         return id;
  85.     }
  86.  
  87.     public void setId(long id) {
  88.         this.id = id;
  89.     }
  90.     public double getMetrosCuadradosCubiertos(){
  91.         //Retornar total de metros Cuadrado de vivienda teniendo en cuenta la cantidad de habitaciones asociadas
  92.         //Al finalizar el calculo validar que el valor obtenido no se mayor a la Sup del terreno
  93.         //Si ocurre esto emitir excepcion con mensaje "La superficie cubierta no puede ser mayor a la sup del terreno"
  94.         double resultado =0;
  95.         int cantidadHabitaciones =0;
  96.         double supTotalHabitaciones=0;
  97.         for (Habitacion habitacione : habitaciones) {
  98.             supTotalHabitaciones = +habitacione.getMetrosCuadrados();
  99.             cantidadHabitaciones++;
  100.         }
  101.         if(supTotalHabitaciones > getSuperficieTerreno() ){
  102.             You are not allowed to view links. Register or Login.out.println("La superficie cubierta no puede ser mayor a la sup del terreno");
  103.             You are not allowed to view links. Register or Login.out.println("\nCantidad de Habitaciones: "+cantidadHabitaciones);
  104.         }
  105.         You are not allowed to view links. Register or Login.out.println("Cantidad de habitaciones "+cantidadHabitaciones);
  106.         return resultado;
  107.     }
  108. }
  109.  
  110.  

Clase Habitacion
Código: Java
  1. package Punto2;
  2.  
  3. public class Habitacion {
  4.    
  5.     private long id;
  6.  
  7.     private You are not allowed to view links. Register or Login descripcion;
  8.  
  9.     private long metrosCuadrados;
  10.    
  11.     private Vivienda viviendas;
  12.    
  13.     public Habitacion() {
  14.     }
  15.  
  16.     public Habitacion(long id, You are not allowed to view links. Register or Login descripcion, long metrosCuadrados, Vivienda viviendas) {
  17.         this.id = id;
  18.         this.descripcion = descripcion;
  19.         this.metrosCuadrados = metrosCuadrados;
  20.         this.viviendas = viviendas;
  21.     }
  22.    
  23.     public Vivienda getViviendas() {
  24.         return viviendas;
  25.     }
  26.  
  27.     public void setViviendas(Vivienda viviendas) {
  28.         this.viviendas = viviendas;
  29.     }
  30.    
  31.     public long getMetrosCuadrados() {
  32.         return metrosCuadrados;
  33.     }
  34.  
  35.     public void setMetrosCuadrados(long metrosCuadrados) {
  36.         this.metrosCuadrados = metrosCuadrados;
  37.     }
  38.  
  39.     public You are not allowed to view links. Register or Login getDescripcion() {
  40.         return descripcion;
  41.     }
  42.  
  43.     public void setDescripcion(You are not allowed to view links. Register or Login descripcion) {
  44.         this.descripcion = descripcion;
  45.     }
  46.  
  47.     public long getId() {
  48.         return id;
  49.     }
  50.  
  51.     public void setId(long id) {
  52.         this.id = id;
  53.     }
  54.  
  55. }
  56.  
  57.  

ahora quería saber su opinión si están bien representadas las relaciones
« Última modificación: Febrero 15, 2016, 03:02:41 pm por EPSILON »
No intentes pararme, trata de defenderte, trata de matarme, pero de cualqueir forma TE SUPERARE

Desconectado Hu3c0

  • *
  • Underc0der
  • Mensajes: 434
  • Actividad:
    1.67%
  • Reputación 0
  • In the middle Netbeans
    • Ver Perfil
« Respuesta #1 en: Febrero 16, 2016, 08:14:14 am »
Yo creo que te debes enfocar en los requerimientos me explico:
Una empresa constructora  puede estar en un barrio y en un barrio puede estar una empresa constructora esto sería  1+1
Una empresa constructora puede estar en muchos barrios y en un barrio  pueden haber muchas empresas constructoras esto sería N+N

En el ejemplo de la manzana:
Una manzana puede estar en una vivienda y en una vivienda pueden haber muchas manzanas  esto sería N + 1

Como ves todo depende  de las relaciones de las entidades que te expongan en los requerimientos.En las relaciones de muchos a muchos la
relación se convierte en otra entidad esto te estoy hablando bajo  la idea de una BD , creo que para el caso te vale exactamente lo mismo.


« Última modificación: Febrero 16, 2016, 08:16:31 am por Hu3c0 »
You are not allowed to view links. Register or Login

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Duda con " "

Iniciado por Krisium

Respuestas: 1
Vistas: 1650
Último mensaje Junio 10, 2010, 10:50:35 am
por Xa0s
[SOLUCIONADO] [Taller PHP] Duda taller php 2 ejercicio 3

Iniciado por arthusu

Respuestas: 4
Vistas: 2082
Último mensaje Agosto 05, 2011, 02:00:42 am
por arthusu
[SOLUCIONADO] [Taller PHP] Duda taller php 1 ejercicio 4

Iniciado por arthusu

Respuestas: 2
Vistas: 1521
Último mensaje Julio 18, 2011, 07:19:33 pm
por arthusu
[SOLUCIONADO][Taller PHP] Duda taller php 2 ejercicio 2

Iniciado por Only

Respuestas: 3
Vistas: 1868
Último mensaje Agosto 05, 2011, 09:48:09 pm
por Only
[SOLUCIONADO] Duda con Windows 7 de 32 bits & 64 bits

Iniciado por andrestoushit

Respuestas: 2
Vistas: 828
Último mensaje Marzo 15, 2016, 04:01:16 pm
por Lah-Vahn