Autor Tema: Pasar objetos como parámetros a un método o constructor Java errores CU00642B  (Leído 2789 veces)

SonyEd

  • Sin experiencia
  • *
  • Mensajes: 13
    • Ver Perfil
Buen dia, quisiera saber, por favor, si el ejercicio que he desarrollado esta bien... Si no es así, por favor quisiera saber en que puedo modificarlo o que hice mal...

Es el ejercicio CU00642B del tutorial gratuito de programación Java básica de aprenderaprogramar

Gracias.


Clase Casa:

Código: [Seleccionar]
public class Casa{

    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;

    //constructor simple
    public Casa(){
        superficie = 0.00;
        direccion = "Nuevo Chimbote";
        salonCasa=null;
        cocina=null;
    }

    //constructor con parametros
    public Casa(double v_superficie, String v_direccion, SalonCasa objetoSalon, CocinaCasa objetoCocina){
        superficie = v_superficie;
        direccion = v_direccion;
        salonCasa = new SalonCasa(objetoSalon.getNumeroDeTelevisores(), objetoSalon.getTipoSalon());
        cocina = new CocinaCasa(objetoCocina.getEsIndependiente(), objetoCocina.getNumeroDeFugas());
    }

    public String getDatosCasa(){

        int televisores = salonCasa.getNumeroDeTelevisores();
        String salon = salonCasa.getTipoSalon();
        boolean independiente = cocina.getEsIndependiente();
        int fugas = cocina.getNumeroDeFugas();

        String datosCasa="La casa tiene "+televisores+" televisores y el salon es "+salon+ ", tiene una superficie de "+superficie+
        " la direccion es "+direccion+", tiene "+fugas+" fugas, y es indepenidente: "+independiente;
        System.out.println (datosCasa);
        return datosCasa;
    }
}


Clase SalonCasa

Código: [Seleccionar]
public class SalonCasa{

    private int numeroDeTelevisores;
    private String tipoSalon;
   
    //constructor
    public SalonCasa(int v_numeroDeTelevisores, String v_tipoSalon){
        numeroDeTelevisores = v_numeroDeTelevisores;
        tipoSalon = v_tipoSalon;
    }

    public void setNumeroDeTelevisores(int v_numeroDeTelevisores){
        numeroDeTelevisores = v_numeroDeTelevisores;
    }

    public void setTipoSalon(String v_tipoSalon){
        tipoSalon = v_tipoSalon;
    }

    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }

    public String getTipoSalon(){
        return tipoSalon;
    }

}


Clase CocinaCasa

Código: [Seleccionar]
public class CocinaCasa{
   
    private boolean esIndependiente;
    private int numeroDeFugas;
   
    //constructor
    public CocinaCasa(boolean v_esIndependiente, int v_numeroDeFugas){
        esIndependiente = v_esIndependiente;
        numeroDeFugas = v_numeroDeFugas;
    }
   
    public void setEsIndependiente(boolean v_esIndependiente){
        esIndependiente = v_esIndependiente;
    }
   
    public void setNumeroDeFugas(int v_numeroDeFugas){
        numeroDeFugas = v_numeroDeFugas;
    }
   
    public boolean getEsIndependiente(){
        return esIndependiente;
    }
   
    public int getNumeroDeFugas(){
        return numeroDeFugas;
    }
   
}
« Última modificación: 09 de Junio 2018, 22:22 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, para cumplir con lo que se pedía en el ejercicio habría que hacer algunas correcciones.

En la clase Casa te faltan los métodos get y set para todos sus atributos.

En los constructores por norma (a no ser que se trate de algún caso especial) se trata de evitar inicializar con datos concretos, como direccion = "Nuevo Chimbote";, eso no sería adecuado a la convención habitual entre programadores.

Sobre cómo inicializar atributos hay un comentario en este hilo: https://aprenderaprogramar.com/foros/index.php?topic=1948.0

Para comprender bien este ejercicio conviene leer estos hilos:

https://aprenderaprogramar.com/foros/index.php?topic=1220.0

https://aprenderaprogramar.com/foros/index.php?topic=1238.0

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