Autor Tema: constructor in class cannot be applied to given types required: no argu CU00642B  (Leído 2538 veces)

ady

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Hola buenas noches. Realizando el ejercicio de la clase CU00642B me encuentro con este error

constructor in class cannot be applied to given types required: no arguments...

, que por mas que lea y relea el código aún no comprendo el motivo del mismo.

El código de las clases SalonCasa y CocinaCasa ya lo verifiqué con otros posts y según las explicaciones y todo lo demás están correctos, por eso no los colocaré, solo dejaré el de la clase Casa que es el que me esta dando problemas y que aunque también lo he comparado con los códigos de otros posts y a mi parecer esta igual, quisiera que me explicaran el por que del error para entender mejor.

Dejaré unos comentarios en el código para que vean donde exactamente tengo el problema.

Casa
Código: [Seleccionar]
public class Casa{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;

    //Constructor 1 sin parametros
    public Casa(){
        superficie = 0;
        direccion = "";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }
   
    //Constructor 2 con parametros
    public Casa(double valorSuperficie, String valorDireccion, SalonCasa objetoSalon, CocinaCasa objetoCocina){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        salonCasa = new SalonCasa(objetoSalon.getNumeroTv(), objetoSalon.getTipoSalon());//Cuando declaro de esta manera me genera error
        cocina = new CocinaCasa();//Al declarar de esta manera no presenta errores
    }
 
    //Setters de la clase Casa
    public void setSuperficie(double valorSuperficie) { superficie = valorSuperficie; }
    public void setDireccion(String valorDireccion) { direccion = valorDireccion; }
   
    //Setters de otras clases que NO presentan errores
    public void setSalonCasa(SalonCasa objetoSalon) {
        salonCasa = new SalonCasa();
        salonCasa.setNumeroTv(objetoSalon.getNumeroTv());
        salonCasa.setTipoSalon(objetoSalon.getTipoSalon());
    }
    public void setCocina(CocinaCasa objetoCocina) {
        cocina = new CocinaCasa();
        cocina.setEsIndependiente(objetoCocina.getEsIndependiente());
        cocina.setNumeroDeFuegos(objetoCocina.getNumeroDeFuegos());
    }
   
    //Setters de otras clases que presentan errores
    public void setSalonCasa(SalonCasa objetoSalon) {
        salonCasa = new SalonCasa(objetoSalon.getNumeroTv(), objetoSalon.getTipoSalon()); }
    public void setCocina(CocinaCasa objetoCocina) {
        cocina = new CocinaCasa(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFuegos()); }

   
    //Getters
    public double getSuperficie(){ return superficie; }
    public String getDireccion(){ return direccion; }
    public SalonCasa getSalonCasa() { return salonCasa; }
    public CocinaCasa getCocina() {return cocina; }
   
}

Sé que tengo que usar uno de los dos setters para las otras clases, sólo que estoy colocando los dos para poder comprender porque uno si funciona y el otro no, igual al momento de crear el nuevo objeto en el constructor.

Gracias por su ayuda  :)
« Última modificación: 18 de Junio 2017, 19:34 por Alex Rodríguez »

pedro,,

  • Moderador Global
  • Experto
  • *******
  • APR2.COM
  • Mensajes: 1292
    • Ver Perfil
Buenas ady.

Intenta pegar siempre todos los códigos de las clases que estés usando.

El error que te da, dice que el constructor que tienes declarado en la clase SalonCasa no requiere ningún parámetro y en la instancia de SalonCasa que usas estás introduciendo dos parámetros.

Saludos. ;D

ady

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Gracias Pedro, tendré en cuenta tu sugerencia en relación al código para mis próximas consultas.

Con respecto al error, eso quiere decir que dentro del constructor no puedo o no debería establecer los parámetros de esa forma?  O los estoy colocando mal?

Porque me estaba guiando con una de las respuestas del foro que tiene este código en el constructor, y la verdad quería probar de esa manera.

Código: [Seleccionar]
public void setCocina (CocinaCasa objetoCocina) {
        cocina = new CocinaCasa(objetoCocina.getEsIndependente(), objetoCocina.getNumeroDeFuegos() );
    }

Ese código esta en una respuesta que dan en este link
https://www.aprenderaprogramar.com/foros/index.php?topic=1238.0

Disculpa si me pongo pesada con esto, solo que intento comprender bien el lenguaje.

Muchas gracias

 

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