Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: niurkafer en 30 de Julio 2015, 17:29
-
Buenas de nuevo la clase casa no me funciona me gustaria saber donde estan mis errores gracias
public class SalonCasa{
private int numerotv;
private String tiposalon;
public SalonCasa (){ //constructor
numerotv = 0;
tiposalon = "desconocido";
}
//setters
public void setNumeroTv (int valorNumeroTv) { //metodo dimeTipoMotor
numerotv = valorNumeroTv;
}
public void setTipoSalon (String valorTipoSalon) { //metodo dimeTipoMotor
tiposalon = valorTipoSalon;
}
public int getNumeroTv () {return numerotv;}
public String getTipoSalon () {return tiposalon;}
}
public class CocinaCasa{
private boolean esindependiente;
private int numerodefuegos;
public CocinaCasa (){
esindependiente = false;
numerodefuegos = 0;
}
public void setEsIndependiente (boolean valorEsIndependiente) { //metodo dimeTipoMotor
esindependiente = valorEsIndependiente;
}
public void setNumeroDeFuegos (int valorNumeroDeFuegos) { //metodo dimeTipoMotor
numerodefuegos = valorNumeroDeFuegos;
}
public boolean getEsIndependiente () {return esindependiente;}
public int getNumeroDeFuegos () {return numerodefuegos;}
}
public class Casa{//clase con otra clase
private double superficie;
private String direccion;
private SalonCasa saloncasa;
private CocinaCasa cocina;
public Casa (SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {//Constructor 1: Valor por defecto de atributos simples y nuevos objetos
superficie = 5.7;
direccion = "Las Garzas";
cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependiente(false), objetoCocinaCasa.getnumerodefuegos(0));
saloncasa = new SalonCasa (objetoSalonCasa.getNumeroTv(3),objetoSalonCasa.getTipoSalon("sala") );
}
public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){ //constructor 2: que reciba parametro
superficie = 0.0;
direccion ="";
cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos());
saloncasa = new SalonCasa (objetoSalonCasa.getNumeroTv(),objetoSalonCasa.getTipoSalon() );
}
//setter de esta clase
public void setSuperficie (double valorSuperficie) {
superficie = valorSuperficie;
}
public void setDireccion (String valorDireccion) {
direccion = valorDireccion;
}
//setter de otras clases
public void setCocinaCasa (boolean valorEsIndependiente, int valorNumeroDeFuegos) {
cocina.setEsIndependiente(valorEsIndependiente);
cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
}
public void setSalonCasa (int valorNumeroTv, String valorTipoSalon){
saloncasa.setNumeroTv(valorNumeroTv);
saloncasa.setTipoSalon(valorTipoSalon);
}
//getters de esta clase
public double getSuperficie () {return superficie;}
public String getDireccion () {return direccion;}
//getters otras clases
public SalonCasa getSalonCasa () {return salonCasa;}
public CocinaCasa getCocina () {return cocina;}
}
-
Hola!
Pedirte por favor que cuando escribas un mensaje relacionado con una entrega del curso indiques la referencia completa en el título, por ejemplo CU00642B.
El título también debe ser descriptivo, por ejemplo "Pasar objetos como parámetros a un método o constructor Java (CU00642B)" es un título correcto mientras que "Ejercicio nro 42 Java" no es un título idóneo porque no contiene la referencia ni describe el contenido.
También cuando presentes un código que te esté dando un problema indícanos con el mayor detalle posible cuál es el problema. Por ejemplo "He compilado la clase SalonCasa y CocinaCasa y no he tenido problemas, pero al tratar de compilar la clase Casa me aparece el mensaje java.lang.IndexOutOfBounds you are using an upper index than it´s permitted en la línea micasa = new Casa ("huytons", 55, 22); y la verdad no sé por qué ocurre esto"
De esta forma nos facilitas a quienes leamos el post poder localizar más rápidamente el ejercicio y el problema y así ser más fácil poder dar una respuesta.
Saludos!
-
ok muchisimas gracias de verdad por toda la ayuda y consejos que aprecio muchisimoooo ok el enunciado es el siguiente
PASO DE OBJETOS COMO PARÁMETROS A UN MÉTODO O CONSTRUCTOR EN JAVA CU00642B Entrega nº42
He compilado la clase SalonCasa y CocinaCasa y no he tenido problemas, pero al tratar de compilar la clase Casa me aparece el mensaje:
method getEsIndependiente in class CocinaCasa Cannot be applied to given types;
required:no arguments; found:boolean; reason actual and formal argument lists differ in length
-
Hola!
Me encargo yo de cambiar el título del tema. Los títulos deben escribirse en minúsculas. Ya cuando crees nuevos temas en el futuro lo puedes tener en cuenta.
Sobre el error que te está dando ocurre lo siguiente:
En la clase Casa tienes esta línea:
cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependiente(false), objetoCocinaCasa.getnumerodefuegos(0));
Y en la clase CocinaCasa tienes este método:
public boolean getEsIndependiente () {return esindependiente;}
El método getEsIndependiente() de la clase casa no tiene nada entre paréntesis. Es un método que se usa para recuperar o conocer el valor del atributo esindependiente de un objeto Cocina. El atributo esindependiente de un objeto Cocina puede tener uno de estos dos valores: true ó false. Estos valores se establecen o bien a través del constructor o bien mediante el uso de un método set.
Ahora supongamos que tenemos dos objetos Cocina que creamos así.
Cocina cocina1 = new Cocina();
Cocina cocina2 = new Cocina();
cocina2.setEsIndependiente(true);
El atributo esindepediente del objeto cocina1 valdrá false porque en el constructor cuando se crea un objeto a través de la sentencia new y el constructor Cocina() el atributo se inicializa a false.
En cambio en el objeto cocina2 el atributo esindependiente valdrá true porque lo hemos establecido con el método setEsIndependiente que así sea.
Ahora si hiciéramos
System.out.println(cocina1.getEsIndependiente()); lo que mostraría es false
System.out.println(cocina2.getEsIndependiente()); lo que mostraría es true
Si escribiéramos
System.out.println(cocina1.getEsIndependiente(false)); nos daría un error method getEsIndependiente in class CocinaCasa Cannot be applied to given types; required:no arguments; found:boolean; reason actual and formal argument lists differ in length
Esto lo que nos dice es que estamos intentando hacer un uso inadecuado del método getEsIndependiente(). Para llamar a este método tenemos que hacerlo como nos diga su definición en la clase Cocina. En su definición, el método no indica que haya de recibir nada (no hay nada entre los paréntesis). Por tanto solo podemos usar el método como getEsIndependiente(). Si tratamos de usarlo pasándole algún parámetro por ejemplo getEsIndependiente(false) ó getEsIndependiente("Pedro") nos dará error porque el método no está preparado para recibir ningún parámetro.
Puedes ver este ejercicio resuelto para guiarte: https://www.aprenderaprogramar.com/foros/index.php?topic=1238
Lo que yo te recomendaría más que ver el ejercicio resuelto es que vuelvas a la entrega CU00639B y vuelvas a leer las entregas desde ahí y vuelvas a repetir los ejercicios desde ahí para tratar de entender bien los conceptos porque si no lo haces se te va a hacer muy difícil el poder seguir avanzando.
Saludos!
-
hola buenas me gustatia saber si lo e echo bien
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
public class CocinaCasa {
private boolean esIndependiente;
private int numeroDeFuegos;
//constructor
public CocinaCasa () {
esIndependiente = false;
numeroDeFuegos = 0;
}
//cierre del constructor
//constructor con parametro
public CocinaCasa (boolean objetoesIndependiente, int objetoNumeroDeFuegos) {
esIndependiente = objetoesIndependiente;
numeroDeFuegos = objetoNumeroDeFuegos;
}
//cierre del constructor
//setters de la clase
public void setEsIndependiente (boolean valorEsIndependiente ){
esIndependiente = valorEsIndependiente;
}
public void setNumeroDeFuegos (int valorNumeroDeFuegos){
numeroDeFuegos = valorNumeroDeFuegos;
}
//getters de la clase
public boolean getEsIndependiente () {return esIndependiente;}
public int getNumeroDeFuegos () {return numeroDeFuegos;}
}
public class SalonCasa {
private int numeroDeTelevisores;
private String tipoSalon;
//constructor
public SalonCasa() {
numeroDeTelevisores = 0;
tipoSalon = "";
} //cierre constructor
//constructor
public SalonCasa(int objetoNumeroDeTelevisores, String objetoTipoSalon ) {
numeroDeTelevisores = objetoNumeroDeTelevisores;
tipoSalon = objetoTipoSalon;
} //cierre constructor
//setters de la clase
public void setNumeroDeTelevisores (int valorNumeroDeTelevisores ){
numeroDeTelevisores = valorNumeroDeTelevisores;
}
public void setTipoSalon (String valorTipoSalon ){
tipoSalon = valorTipoSalon;
}
//getters de la clase
public int getNumeroDeTelevisores () {return numeroDeTelevisores;}
public String getTipoSalon () {return tipoSalon;}
}
public class Casa {
private double superficie;
private String direccion;
private SalonCasa saloncasa;
private CocinaCasa cocina;
//constructor:1 por defectos , simpples
public Casa (){
superficie = 0.0;
direccion = "";
saloncasa = new SalonCasa ();
cocina = new CocinaCasa ();
}
//constructor 2
public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie = valorSuperficie;
direccion = valorDireccion;
saloncasa = new SalonCasa (objetoSalonCasa.getNumeroDeTelevisores (), objetoSalonCasa.getTipoSalon() );
cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependiente(),objetoCocinaCasa.getNumeroDeFuegos ());
}
//setters de esta clase
public void setSuperficie (double valorSuperficie ){
superficie = valorSuperficie;
}
public void setDireccion (String valorDireccion ){
direccion = valorDireccion;
}
//Setter de las otras clases
public void setNumeroDeTelevisores (int objetoNumeroDeTelevisores)
{saloncasa.setNumeroDeTelevisores (objetoNumeroDeTelevisores);}
public void setTipoSalon (String objetoTipoSalon)
{saloncasa.setTipoSalon (objetoTipoSalon);}
public void setEsIndependiente (boolean objetoesIndependiente)
{cocina.setEsIndependiente (objetoesIndependiente);}
public void setNumeroDeFuegos (int objetoNumeroDeFuegos)
{cocina.setNumeroDeFuegos (objetoNumeroDeFuegos);}
//getters esta clase
public double getSuperficie () {return superficie;}
public String getDireccion () {return direccion;}
//getters de las otras clases
public SalonCasa getSalonCasa () {return saloncasa;}
public CocinaCasa getCocinaCasa () {return cocina;}
}
-
Hola niurkafer, he comprobado que en este otro hilo https://www.aprenderaprogramar.com/foros/index.php?topic=3004.0
existe la misma referencia (CU00642B).
Por favor no abras dos hilos para la misma referencia, una vez has abierto un hilo todas las respuestas o consultas sobre esa referencia hazlas en el mismo hilo.
La razón es mantener los foros ordenados.
Saludos