Autor Tema: CU00642B paso de objetos como parametros a un metodo o constructor Java  (Leído 5139 veces)

Jarper

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Buenos días,

antes de nada quiero agradecer que se hayan corregido mis otros ejercicios.

 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.

CLASE SalonCasa:
Código: [Seleccionar]
public class SalonCasa
{
    private int numeroDeTelevisores;
    private String tipoSalon;
    /**
     * Constructor for objects of class SalonCasa
     */
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
    public SalonCasa(int valorNumeroDeTelevisores, String valorTipoSalon)
    {
        numeroDeTelevisores = valorNumeroDeTelevisores;
        tipoSalon = valorTipoSalon;
    }
    public void setNumeroDeTelevisores(int valorTelevisores){
        numeroDeTelevisores = valorTelevisores;
    }
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }
    public String getTipoSalon(){
        return tipoSalon;
    }
}
CLASE CocinaCasa:
Código: [Seleccionar]
public class CocinaCasa
{
    private boolean esIndependiente;
    private int numeroDeFuegos;
    /**
     * Constructor for objects of class CocinaCasa
     */
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
    public CocinaCasa(boolean valorEsIndependiente, int valorNumeroDeFuegos)
    {
        esIndependiente = valorEsIndependiente;
        numeroDeFuegos = valorNumeroDeFuegos;
    }
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }
    public boolean getEsIndependiente(){
        return esIndependiente;
    }
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }
}

CLASE Casa:
Código: [Seleccionar]
public class Casa
{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   
    /**
     * Constructor for objects of class Casa
     */
    public Casa(double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocina)
    {
       superficie = valorSuperficie;
       direccion = valorDireccion;
       salonCasa = new SalonCasa(objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon()) ;
       cocina = new CocinaCasa(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFuegos());
    }
    public Casa(){
        superficie = 0;
        direccion = "desconocido";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
}
Muchas gracias, atentamente.
« Última modificación: 12 de Enero 2015, 21:21 por toni_apr »

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Hola Jarper

Primero quiero indicarte que el código debes introducirlo dentro de las etiquetas que crea el botón code (botón con el símbolo de la almohadilla)
Mira ¿Cómo insertar código en el foro? en este enlace
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Ejercicio correcto
La creación de las clases con sus constructores setters y getters perfecta.
En este ejercicio la dificultad estaba en asignar los objetos de tipo SalonCasa y CocinaCasa en la clase Casa

No obstante, aunque en el enunciado no se pide, toma la costumbre de crear los setters y getters de los atributos de la clase. En la clase Casa solo has declarado los atributos y creado los dos constructores.

Saludos.

Jarper

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Muchas gracias por contestar y ante todo disculpa por el fallo del código.
¡No volverá a pasar! (Gracias por haberlo arreglado :P ).

Un saludo y gracias de nuevo.

mfgrada

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:CU00642B paso de objetos como parametros a un metodo o constructor Java
« Respuesta #3 en: 06 de Febrero 2015, 18:48 »
Buenas tardes, realicé el mismo ejercicio y comparé con el posteado aquí pero me dice error cuando intento compilar la clase Casa y está igual, me dice:
constructor SalonCasa in classe SalonCasa cannot be applied to given types;
required: no arguments;  found: int.java.lang.String; reason: actual and formal argumentm lists differ in length

Para la clase Casa:
public class Casa
{
    private double Area;
    private String Direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
   

    public Casa(double valorArea, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocina){
    Area = valorArea;
    Direccion = valorDireccion;
    salonCasa = new SalonCasa(objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon()) ;
    cocina = new CocinaCasa(objetoCocina.getesIndependiente(),objetoCocina.getNumeroDeFuegos()) ;
}
    public Casa (){
    Area = 0;
    Direccion = "desconocida";
    salonCasa = new SalonCasa();
    cocina = new CocinaCasa();
    }
    public void setArea (double valorArea){
    Area = valorArea;
    }
    public void setDireccion (String valorDireccion){
    Direccion = valorDireccion;
    }
    public double getArea () {return Area;}
    public String getDireccion (){return Direccion;}
   
}
« Última modificación: 06 de Febrero 2015, 18:50 por mfgrada »

Jarper

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 20
    • Ver Perfil
Re:CU00642B paso de objetos como parametros a un metodo o constructor Java
« Respuesta #4 en: 06 de Febrero 2015, 22:01 »
Asegurate de tener el constructor de SalonCasa sin parámetros y otro con los dos parámetros, un String y un int.
Por el error que posteas, sólo has creado el constructor sin parámetros.

Un saludo.

mfgrada

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
Re:CU00642B paso de objetos como parametros a un metodo o constructor Java
« Respuesta #5 en: 06 de Febrero 2015, 22:32 »
Mil gracias, ese era justamente el error y no me di cuenta
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".