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

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

 

¿Te gustó el post? COMPARTILO!



[SOLUCIONADO] Duda con " "

Iniciado por Krisium

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

Iniciado por Only

Respuestas: 3
Vistas: 1935
Ú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: 903
Último mensaje Marzo 15, 2016, 04:01:16 pm
por Lah-Vahn
[SOLUCIONADO] [Taller PHP] Duda taller php 1 ejercicio 2

Iniciado por arthusu

Respuestas: 3
Vistas: 1905
Ú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: 1502
Último mensaje Agosto 01, 2011, 04:28:03 pm
por Only