Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: SonyEd en 19 de Diciembre 2017, 07:04

Título: Pasar objetos como parámetros a un método o constructor Java errores CU00642B
Publicado por: SonyEd en 19 de Diciembre 2017, 07:04
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;
    }
   
}
Título: Re:Pasar objetos como parámetros a un método o constructor Java. (CU00642B)
Publicado por: Alex Rodríguez en 09 de Junio 2018, 22:21
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