Autor Tema: Ejercicio CU00642B Pasar objetos como parámetros a un método o constructor Java  (Leído 3699 veces)

Javier1996

  • Sin experiencia
  • *
  • Mensajes: 16
    • Ver Perfil
Hola
Aquí dejo mi solución, En el enunciado no decía que agregase un segundo constructor con parámetros  a las clases SalonCasa y CocinaCasa, pero se los tuve que agregar ya que si no, no podía compilar el código de la clase Casa al agregar su segundo constructor con parámetros, ya que lanzaba error.
Saludos!!

Citar
EJERCICIO

Define tres clases: Casa, SalonCasa y CocinaCasa. La clase SalonCasa debe tener como atributos numeroDeTelevisores (int) y tipoSalon (String) y disponer de un constructor que los inicialice a 0 y “desconocido”. La clase CocinaCasa debe tener como atributos esIndependiente (boolean) y numeroDeFuegos (int) y un constructor que los inicialice a false y 0. La clase Casa tendrá los siguientes atributos de clase: superficie (double), direccion (String), salonCasa (tipo SalonCasa) y cocina (tipo CocinaCasa). Define un constructor para la clase Casa que establezca a unos valores de defecto los atributos simples y que cree nuevos objetos si se trata de atributos objeto. Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa. Compila el código para comprobar que no presenta errores, y crea un objeto de tipo Casa usando el constructor que recibe parámetros. Ten en cuenta que antes tendrás que haber creado los objetos de tipo SalonCasa y CocinaCasa para poder pasárselos al constructor. Comprueba que el objeto Casa se inicializa correctamente consultando el valor de sus atributos después de haber creado el objeto. Para comprobar si es correcta tu solución puedes consultar en los foros aprenderaprogramar.com.

Código: [Seleccionar]
/** Curso Aprender a programar en java desde cero
 * Pasar objetos como parámetros a un método o constructor Java
 * Codigo CU00642B */

//Esta clase define el salon de una casa
public class SalonCasa{
    private int numeroTelevisores;
    private String tipoSalon;

    // Constructor 1 Sin Parametros
    public SalonCasa(){
        numeroTelevisores = 0;
        tipoSalon = "Desconocido";
    }//Cierre del Constructor 1
   
    //Constructor 2 Con parametros
    public SalonCasa(int valorNumeroTelevisores, String valorTipoSalon){
        numeroTelevisores = valorNumeroTelevisores;
        tipoSalon = valorTipoSalon;
    }//Cierre del constructor 2
       
    /** Setters */
    //Método para establecer el numero de televisores de una casa
    public void setNumeroTelevisores (int valorNumeroTelevisores){
        numeroTelevisores = valorNumeroTelevisores;
    }//Cierer del Método
   
    //Método para establecer el tipo de salon de una casa
    public void setTipoSalon (String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }//Cierre del Método
   
    /** Getters */
    //Método para obtener el numero de televisores de una casa
    public int getNumeroTelevisores(){return numeroTelevisores;}//Cierre del Método
   
    //Método para obtener el tipo de salon de una casa
    public String getTipoSalon(){return tipoSalon;}//Cierre del Método
}//Cierre de la clase

Código: [Seleccionar]
/** Curso Aprender a programar en java desde cero
 * Pasar objetos como parámetros a un método o constructor Java
 * Codigo CU00642B */

//Esta clase define la cocina de una casa
public class CocinaCasa{
    private boolean esIndependiente;
    private int numeroDeFuegos;

    //Constructor 1 Sin Parametros
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }//Cierre del constructor
   
    //Constructor 2 Con Parametros
    public CocinaCasa (boolean valorEsIndependiente, int valorNumeroDeFuegos){
        esIndependiente = valorEsIndependiente;
        numeroDeFuegos = valorNumeroDeFuegos;
    }//Cierre del constructor 2
   
    /** Setters */
    //Método para establecer si la cocina de la casa es independiente
    public void setEsIndependiente (boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }//Cierre del Método
   
    //Método para establecer el numero de fuegos de la cocina
    public void setNumeroDeFuegos (int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }//Cierre del Método
   
    /** Getters */
    //Método para obtener si la cocina es independiente
    public boolean getEsIndependiente (){return esIndependiente;}//Cierre del Método
   
    //Método para obtener el numero de fuegos de la cocina
    public int getNumeroDeFuegos(){return numeroDeFuegos;}//Cierre del Método
}//Cierre de la clase

Código: [Seleccionar]
/** Curso Aprender a programar en java desde cero
 * Pasar objetos como parámetros a un método o constructor Java
 * Codigo CU00642B */

//Esta clase define a una casa
public class Casa {
    private double superficie;
    private String direccion;
    private SalonCasa salon;
    private CocinaCasa cocina;

    //Constructor 1 Sin parametros
    public Casa (){
        superficie = 0;
        direccion = "";
        salon = new SalonCasa();
        cocina = new CocinaCasa();
    }//Cierre del constructor 1
   
    //Constructor 2 Con parametros
    public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        salon = new SalonCasa( objetoSalonCasa.getNumeroTelevisores(), objetoSalonCasa.getTipoSalon() );
        cocina = new CocinaCasa( objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos() );
    }//Cierre del Constructor 2
   
   
    /** Setters */
    //Método para establecer la superficie de la casa
    public void setSuperficie (double valorSuperficie){
        superficie = valorSuperficie;
    }//Cierre del Método
   
    //Método para establecer la direccion de la casa
    public void setDireccion (String valorDireccion){
        direccion = valorDireccion;
    }//Cierre del Método
   
    //Método para establecer el salon de la casa
    public void SetSalon (SalonCasa objetoSalonCasa){
        salon = objetoSalonCasa;
    }//Cierre del Método
   
    //Método para establecer la cocina de la casa
    public void setCocina (CocinaCasa objetoCocinaCasa){
        cocina = objetoCocinaCasa;
    }//Cierre del Método
   
   
    /** Getters */
    //Método para obtener la superficie de la casa
    public double getSuperficie(){return superficie;}//Cierre del Método
   
    //Método para obtener la direccion de la casa
    public String getDireccion(){return direccion;}//Cierre del Método
   
    //Método para obtener el tipo de salon de la casa
    public SalonCasa getSalon(){return salon;}//Cierre del Método
   
    //Método para obtener el tipo de cocina de la casa
    public CocinaCasa getCocina(){return cocina;}//Cierre del Método
   
}//Cierre de la clase
« Última modificación: 20 de Agosto 2015, 23:52 por Javier1996 »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Hola Javier la clase CocinaCasa está perfecta; la clase SalonCasa también. La clase Casa también la tienes bien aunque en esta clase habría distintas alternativas para plantearla. Como podrás leer en otros hilos recomendamos revisar https://www.aprenderaprogramar.com/foros/index.php?topic=1220.0 y https://www.aprenderaprogramar.com/foros/index.php?topic=1238 para ampliar.

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

 

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".