Autor Tema: Principio de cohesión en programación orientada a objetos sobre clase CU00642B  (Leído 2404 veces)

matru

  • Sin experiencia
  • *
  • Mensajes: 41
    • Ver Perfil
Código: [Seleccionar]
public class Casa{

    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
   
   public Casa(){
   
        superficie = 0;
        direccion ="";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
   public Casa(double superficie, String direccion, SalonCasa salonCasa, CocinaCasa cocina){
   
        this.superficie = superficie;
        this.direccion = direccion;
        salonCasa = new SalonCasa(salonCasa.getNumeroDeTelevisores(), salonCasa.getTipoSalon());
        cocina = new CocinaCasa(cocina.getEsIndependiente(),cocina.getNumeroDeFuegos());
    }
   
    public void setSuperficie(double superficie){
   
        this.superficie = superficie;
    }
   
    public double getSuperficie(){return superficie;}
   
    public void setDireccion(String direccion){
   
        this.direccion = direccion;
    }
   
    public String getDireccion(){return direccion;}
   
    public void setNumeroDeTelevisores(int numeroDeTelevisores){
   
        salonCasa.setNumeroDeTelevisores(numeroDeTelevisores);
    }
   
    public int getNumeroDeTelevisores(){return salonCasa.getNumeroDeTelevisores();}
   
    public void setTipoSalon(String tipoSalon){
   
        salonCasa.setTipoSalon(tipoSalon);
    }
   
    public String getTipoSalon(){return salonCasa.getTipoSalon();}
   
    public void setEsIndependiente(boolean esIndependiente){
   
        cocina.setEsIndependiente(esIndependiente);
    }
   
    public boolean getEsIndependiente(){return cocina.getEsIndependiente();}
   
    public void setNumeroDeFuegos(int numeroDeFuegos){
   
        cocina.setNumeroDeFuegos(numeroDeFuegos);
    }
   
    public int getNumeroDeFuegos(){return cocina.getNumeroDeFuegos();}
   
   
}
Código: [Seleccionar]
public class CocinaCasa{

    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    public CocinaCasa(){
   
        esIndependiente = false;
        numeroDeFuegos =0;
    }
   
    public CocinaCasa(boolean esIndependiente, int numeroDeFuegos){
   
        this.esIndependiente = esIndependiente;
        this.numeroDeFuegos = numeroDeFuegos;
    }
   
    public void setEsIndependiente(boolean esIndependiente){
   
        this.esIndependiente = esIndependiente;
    }
   
    public boolean getEsIndependiente(){return esIndependiente;}
   
    public void setNumeroDeFuegos(int numeroDeFuegos){
   
        this.numeroDeFuegos = numeroDeFuegos;
    }
   
    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}
Código: [Seleccionar]
public class SalonCasa{

    private int numeroDeTelevisores;
    private String tipoSalon;
   
   
    public SalonCasa(){
   
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
   
    public SalonCasa(int numeroDeTelevisores, String tipoSalon){
   
        this.numeroDeTelevisores = numeroDeTelevisores;
        this.tipoSalon = tipoSalon;
    }
   
    public void setNumeroDeTelevisores(int numeroDeTelevisores){
   
        numeroDeTelevisores = numeroDeTelevisores;
    }
   
    public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
   
    public void setTipoSalon(String tipoSalon){
   
        this.tipoSalon = tipoSalon;
    }
   
    public String getTipoSalon(){return tipoSalon;}
   
   
   
}
« Última modificación: 02 de Febrero 2016, 19:18 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola matru, tu código está bien desarrollado. El único aspecto a mejorar se encuentra en la clase Casa. Aquí tienes los constructores bien definidos, pero luego tendrías que corregir esto:

- En la clase Casa no deben existir métodos para manipular atributos de otras clases. Por ejemplo getNumeroDeTelevisores no debe figurar en esta clase. Cada clase se encarga sólo de sus atributos (esto se llama cohesión de la clase).

- Hay que "empezar a pensar en objetos". En la clase Casa debes tener métodos setSalonCasa y getSalonCasa, así como getCocinaCasa y setCocinaCasa que trabajen con objetos. Para aclarar cómo se debe hacer esto te recomiendo que revises estos hilos:

https://www.aprenderaprogramar.com/foros/index.php?topic=1220.0

https://www.aprenderaprogramar.com/foros/index.php?topic=1238.0

Con esto deberías ser capaz de corregir el ejercicio. Si tienes dudas consulta para intentar ayudarte.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".