Autor Tema: method in class Cannot be applied to given types; actual and formal CU00642B  (Leído 8155 veces)

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Buenas de nuevo la clase casa no me funciona me gustaria saber donde estan mis errores gracias

Código: [Seleccionar]
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;}

}

Código: [Seleccionar]
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;}
}

Código: [Seleccionar]
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;}

« Última modificación: 31 de Julio 2015, 15:21 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio Nro 42 Java
« Respuesta #1 en: 31 de Julio 2015, 12:31 »
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!
Responsable de departamento de producción aprenderaprogramar.com

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Re:Ejercicio Nro 42 Java CU00642B
« Respuesta #2 en: 31 de Julio 2015, 12:48 »
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
« Última modificación: 31 de Julio 2015, 15:22 por César Krall »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
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:
Código: [Seleccionar]
cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependiente(false), objetoCocinaCasa.getnumerodefuegos(0));
Y en la clase CocinaCasa tienes este método:

Código: [Seleccionar]
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í.

Código: [Seleccionar]
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!
Responsable de departamento de producción aprenderaprogramar.com

niurkafer

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
pasa de objetos como parametros a un metodo o constructor en java CU00642B
« Respuesta #4 en: 03 de Agosto 2015, 14:47 »
hola buenas me gustatia saber si lo e echo bien 

Citar
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

Código: [Seleccionar]
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;}
}

Código: [Seleccionar]
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;}
}

Código: [Seleccionar]
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;}

}

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
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


 

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