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
  • 18272 Vistas

0 Usuarios y 3 Visitantes 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 String nombre;
  11.  
  12.     private String rubro;
  13.  
  14.     private String direccion;
  15.    
  16.     private List<Barrio> barrios;
  17.    
  18.     public EmpresaConstructora() {
  19.     }
  20.  
  21.     public EmpresaConstructora(long id, String nombre, String rubro, String 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 String getDireccion() {
  38.         return direccion;
  39.     }
  40.  
  41.     public void setDireccion(String direccion) {
  42.         this.direccion = direccion;
  43.     }
  44.  
  45.     public String getRubro() {
  46.         return rubro;
  47.     }
  48.  
  49.     public void setRubro(String rubro) {
  50.         this.rubro = rubro;
  51.     }
  52.  
  53.     public String getNombre() {
  54.         return nombre;
  55.     }
  56.  
  57.     public void setNombre(String 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 String nombre;
  11.  
  12.     private String distrito;
  13.    
  14.     private List<EmpresaConstructora> empresaConstructura;
  15.    
  16.     private List<Manzana> manzanas;
  17.    
  18.     public Barrio() {
  19.     }
  20.  
  21.     public Barrio(long id, String nombre, String 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 String getDistrito() {
  46.         return distrito;
  47.     }
  48.  
  49.     public void setDistrito(String distrito) {
  50.         this.distrito = distrito;
  51.     }
  52.  
  53.     public String getNombre() {
  54.         return nombre;
  55.     }
  56.  
  57.     public void setNombre(String 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(String 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(String 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 String 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, String 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 String getLetra() {
  46.         return letra;
  47.     }
  48.  
  49.     public void setLetra(String 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 String 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, String 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 String getCalle() {
  68.         return calle;
  69.     }
  70.  
  71.     public void setCalle(String 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.             System.out.println("La superficie cubierta no puede ser mayor a la sup del terreno");
  103.             System.out.println("\nCantidad de Habitaciones: "+cantidadHabitaciones);
  104.         }
  105.         System.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 String descripcion;
  8.  
  9.     private long metrosCuadrados;
  10.    
  11.     private Vivienda viviendas;
  12.    
  13.     public Habitacion() {
  14.     }
  15.  
  16.     public Habitacion(long id, String 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 String getDescripcion() {
  40.         return descripcion;
  41.     }
  42.  
  43.     public void setDescripcion(String 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:
    0%
  • 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 »

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Duda con " "

Iniciado por Krisium

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

Iniciado por arthusu

Respuestas: 3
Vistas: 2002
Último mensaje Julio 18, 2011, 02:20:03 am
por arthusu
[SOLUCIONADO] [Taller PHP] Duda taller php 1 ejercicio 2

Iniciado por Only

Respuestas: 2
Vistas: 1568
Último mensaje Agosto 01, 2011, 04:28:03 pm
por Only
[SOLUCIONADO] [Taller PHP] Duda taller php 2 ejercicio 3

Iniciado por arthusu

Respuestas: 4
Vistas: 2254
Último mensaje Agosto 05, 2011, 02:00:42 am
por arthusu
[SOLUCIONADO] Duda con Windows 7 de 32 bits & 64 bits

Iniciado por andrestoushit

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