Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: momo en 01 de Septiembre 2014, 19:02
-
Por Favor Me pueden ayudar el ejercicio que hice me manda un error que no se como solucionarlo
El ERROR ES :
constructor SalonCasa in class SalonCasa cannot be appliedto given types;
required:no arguments; found int,java.lang.String; reason:actual and formal argument lists differ in length
Este Error se encuentra en la clase casa .
CLASE CASA:
public class Casa
{
//ATRIBUTOS
private double superficie;
private String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;
public Casa()//CONSTRUCTOR
{
superficie=0.0;
direccion="";
salonCasa=new SalonCasa();
cocina=new CocinaCasa();
}
public Casa(SalonCasa objetoSalon,CocinaCasa objetoCocina)//CONSTRUCTOR 2
{
salonCasa= new SalonCasa(objetoSalon.getNumeroDeTelevisores(),objetoSalon.getTipoSalon());
cocina=new CocinaCasa(objetoCocina.getEsIndependiente(),objetoCocina.getNumeroDeFuego());
}
//Metodos setter para superficie y direccion
public void setSuperficie(double valorSuperficie)
{
superficie=valorSuperficie;
}
public void setDireccion(String valorDireccion)
{
direccion=valorDireccion;
}
//metodo getter para superficie y direccion
public double getSuperficie(){return superficie;}
public String getDireccion(){return direccion;}
}
CLASE SalonCasa:
public class SalonCasa
{
//Atributos
private int numeroDeTelevisores;
private String tipoSalon;
public SalonCasa()//Constructor
{
numeroDeTelevisores=0;
tipoSalon="";
}
//Metodo Setter
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores)
{
numeroDeTelevisores=valorNumeroDeTelevisores;
}
public void setTipoSalon(String valorTipoSalon)
{
tipoSalon=valorTipoSalon;
}//Fin Metodo Setter
//Metodo Getter
public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
public String getTipoSalon(){return tipoSalon;}
}//Fin class
CLASE CocinaCasa:
public class CocinaCasa
{
private boolean esIndependiente;
private int numeroDeFuego;
public CocinaCasa()
{
esIndependiente=false;
numeroDeFuego=0;
}
public void setEsIndependiente(boolean valorEsIndependiente)
{
esIndependiente=valorEsIndependiente;
}
public void setNumeroDeFuego(int valorNumeroDeFuego)
{
numeroDeFuego=valorNumeroDeFuego;
}
public boolean getEsIndependiente(){return esIndependiente;}
public int getNumeroDeFuego(){return numeroDeFuego;}
}
por favor me pueden ayudar .
-
Hola, el error lo tienes aquí:
salonCasa= new SalonCasa(objetoSalon.getNumeroDeTelevisores(),objetoSalon.getTipoSalon());
Lo que te está diciendo es que estás tratando de crear un objeto de tipo SalonCasa invocando un constructor que no existe.
Si te fijas en tu código de la clase SalonCasa tienes sólo este constructor:
public SalonCasa()//Constructor
{
numeroDeTelevisores=0;
tipoSalon="";
}
Este constructor no recibe parámetros. Por tanto sólo puedes usar new para un objeto SalonCasa así: salon = new SalonCasa()
Los paréntesis están vacíos porque no tienes ningún constructor con parámetros.
Para resolver esto tienes dos opciones:
a) Eliminar ese constructor en la clase Casa
b) Definir un nuevo constructor, que sí reciba parámetros, en la clase SalonCasa
"Todo tiene que cuadrar"
Inténtalo y si tienes problemas vuelve a preguntar...
Saludos
-
Hola Mario R. Rancel Ya modifique las clases "SalonCasa y CocinaCasa " lo que hice fue agregarle otro constructor con parámetros y si ahora funciona perfectamente el ejercicio. Muchas Gracias Amigo.
CLASE CocinaCasa
public class CocinaCasa
{
private boolean esIndependiente;
private int numeroDeFuego;
public CocinaCasa()
{
esIndependiente=false;
numeroDeFuego=0;
}
public CocinaCasa(boolean valorEsIndependiente, int valorNumeroDeFuego)
{
esIndependiente=valorEsIndependiente;
numeroDeFuego=valorNumeroDeFuego;
}
public void setEsIndependiente(boolean valorEsIndependiente)
{
esIndependiente=valorEsIndependiente;
}
public void setNumeroDeFuego(int valorNumeroDeFuego)
{
numeroDeFuego=valorNumeroDeFuego;
}
public boolean getEsIndependiente(){return esIndependiente;}
public int getNumeroDeFuego(){return numeroDeFuego;}
}
CLASE SalonCasa:
public class SalonCasa
{
//Atributos
private int numeroDeTelevisores;
private String tipoSalon;
public SalonCasa()//Constructor
{
numeroDeTelevisores=0;
tipoSalon="";
}
public SalonCasa(int valorNumeroDeTelevisores,String valorTipoSalon)
{
numeroDeTelevisores=valorNumeroDeTelevisores;
tipoSalon=valorTipoSalon;
}
//Metodo Setter
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores)
{
numeroDeTelevisores=valorNumeroDeTelevisores;
}
public void setTipoSalon(String valorTipoSalon)
{
tipoSalon=valorTipoSalon;
}//Fin Metodo Setter
//Metodo Getter
public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
public String getTipoSalon(){return tipoSalon;}
}//Fin class
CLASE Casa:
public class Casa
{
//ATRIBUTOS
private double superficie;
private String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;
public Casa()//CONSTRUCTOR
{
superficie=0.0;
direccion="";
salonCasa=new SalonCasa();
cocina=new CocinaCasa();
}
public Casa(SalonCasa objetoSalon,CocinaCasa objetoCocina)//CONSTRUCTOR 2
{
salonCasa= new SalonCasa(objetoSalon.getNumeroDeTelevisores(),objetoSalon.getTipoSalon());
cocina=new CocinaCasa(objetoCocina.getEsIndependiente(),objetoCocina.getNumeroDeFuego());
}
//Metodos setter para superficie y direccion
public void setSuperficie(double valorSuperficie)
{
superficie=valorSuperficie;
}
public void setDireccion(String valorDireccion)
{
direccion=valorDireccion;
}
//metodo getter para superficie y direccion
public double getSuperficie(){return superficie;}
public String getDireccion(){return direccion;}
}
-
A mi me salía el mismo error... he decidido hacer las dos opciones que propones para resolver el problema, una para cada clase. ¿seria así?
Gracias.
Aquí el código
Para Casa
Para Casa
/**
* Write a description of class Casa here.
* @author (jaivcaba)
* @version (23/10/2014)
*/
public class Casa
{
// instance variables - replace the example below with your own
private double superficie;
private String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocinaCasa;
/*
* Constructor for objects of class Casa
*/
public Casa()
{
// initialise instance variables
superficie = 0.0;
direccion = " calle _ carrera _";
salonCasa = new SalonCasa();
cocinaCasa = new CocinaCasa();
}
public Casa(double superficie, String direccion , SalonCasa objetosalonCasa, CocinaCasa objetococinaCasa)
{
salonCasa = new SalonCasa (objetosalonCasa.getNumeroDeTelevisores(), objetosalonCasa.getTipoSalon ());
cocinaCasa = objetococinaCasa;
}
public void setSuperficie (double valorSuperficie){
superficie = valorSuperficie;
}
public void setDireccion (String valorDireccion){
direccion = valorDireccion;
}
public void setSalonCasa (SalonCasa valorsalonCasa){
this.salonCasa = valorsalonCasa;
}
public void setCocinaCasa (CocinaCasa valorcocinaCasa){
this.cocinaCasa = valorcocinaCasa;
}
public double getSuperficie (){return superficie;}
public String getDireccion () {return direccion;}
public SalonCasa getsalonCasa () { return salonCasa;}
public CocinaCasa getcocinacasa (){return cocinaCasa;}
}
Para CocinaCasa
/**
* Write a description of class CocinaCasa here.
*
* @author (jaivacaba)
* @version (19/10/14)
*/
public class CocinaCasa
{
// instance variables - replace the example below with your own
private boolean esIndependiente;
private int numeroDeFuegos;
/**
* Constructor for objects of class CocinaCasa
*/
public CocinaCasa()
{
// initialise instance variables
esIndependiente = false;
numeroDeFuegos = 0;
}
public void setEsIndependiente (boolean valorEsIndependiente){
esIndependiente = valorEsIndependiente;
}
public void setNumeroDeFuegos (int valorNumeroDeFuegos){
numeroDeFuegos = valorNumeroDeFuegos;
}
public boolean getEsIndependiente (){return esIndependiente;}
public int getNumeroDeFuegos () {return numeroDeFuegos;}
}
Para SalonCasa
/**
* Write a description of class SalonCasa here.
*
* @author (jaivcaba)
* @version (19/10/14)
*/
public class SalonCasa
{
// instance variables - replace the example below with your own
private int numeroDeTelevisores;
private String tipoSalon;
/**
* Constructor for objects of class SalonCasa
*/
public SalonCasa(int setnumeroDeTelevisores, String setTipoSalon)
{
numeroDeTelevisores = setnumeroDeTelevisores;
tipoSalon= setTipoSalon;
}
public SalonCasa()
{
// initialise instance variables
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
public void setNumeroDeTelevisores (int valorNumeroDeTelevisores){
numeroDeTelevisores = valorNumeroDeTelevisores;
}
public void setTipoSalon (String valorTipoSalon){
tipoSalon = valorTipoSalon;
}
public int getNumeroDeTelevisores (){return numeroDeTelevisores;}
public String getTipoSalon (){return tipoSalon;}
}
-
Hola jaivcaba, el código está bien resuelto.
En el constructor sin parámetros sería más aconsejable inicializar direccion = "" en lugar de direccion = " calle _ carrera _";
En los parámetros debes seguir el patrón camelCase, por ejemplo mejor objetoSalonCasa que objetosalonCasa. La diferencia es una simple letra mayúscula, pero así sigues el patrón.
En el constructor con parámetros esto está muy bien planteado: salonCasa = new SalonCasa (objetosalonCasa.getNumeroDeTelevisores(), objetosalonCasa.getTipoSalon ());
Cumplido el objetivo del ejercicio al 100%, ¡a seguir!
Saludos.