Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ady en 13 de Mayo 2017, 08:12
-
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
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 :)
-
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
-
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.
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 (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