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

rogergcc

  • Sin experiencia
  • *
  • Mensajes: 17
    • Ver Perfil
EJERCICIO

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.

Aquí dejo el ejercicio, notificar cualquier error  :)

Clase CocinaCasa
Código: [Seleccionar]
public class CocinaCasa {
    private boolean esIndependiente;
    private int numeroDeFuegos;

    public CocinaCasa() {
        esIndependiente = false;
        numeroDeFuegos = 0;
    }

    public CocinaCasa(boolean esIndependiente, int numeroDeFuegos) {
        this.esIndependiente = esIndependiente;
        this.numeroDeFuegos = numeroDeFuegos;
    }

    public boolean isEsIndependiente() {
        return esIndependiente;
    }

    public void setEsIndependiente(boolean esIndependiente) {
        this.esIndependiente = esIndependiente;
    }

    public int getNumeroDeFuegos() {
        return numeroDeFuegos;
    }

    public void setNumeroDeFuegos(int numeroDeFuegos) {
        this.numeroDeFuegos = numeroDeFuegos;
    }
   
}

Clase SalonCasa
Código: [Seleccionar]
public class SalonCasa {
    private int numeroDeTelevisores;
    private String tipoSalon;

    public SalonCasa() {
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }

    public SalonCasa(int numeroDeTelevisores, String tipoSalon) {
        this.numeroDeTelevisores = numeroDeTelevisores;
        this.tipoSalon = tipoSalon;
    }

    public int getNumeroDeTelevisores() {
        return numeroDeTelevisores;
    }

    public void setNumeroDeTelevisores(int numeroDeTelevisores) {
        this.numeroDeTelevisores = numeroDeTelevisores;
    }

    public String getTipoSalon() {
        return tipoSalon;
    }

    public void setTipoSalon(String tipoSalon) {
        this.tipoSalon = tipoSalon;
    }
   
}

Clase Casa
Código: [Seleccionar]
public class Casa {
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;

    public Casa() {
        superficie = 0.0;
        direccion = "";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }

    public Casa(double superficie, String direccion, SalonCasa salonCasa, CocinaCasa cocina) {
        this.superficie = superficie;
        this.direccion = direccion;
        this.salonCasa = salonCasa;
        this.cocina = cocina;
    }

    public double getSuperficie() {
        return superficie;
    }

    public void setSuperficie(double superficie) {
        this.superficie = superficie;
    }

    public String getDireccion() {
        return direccion;
    }

En el main
 
Código: [Seleccionar]
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        SalonCasa salon1= new SalonCasa(5,"fiesta");
        CocinaCasa cocina1= new CocinaCasa();
        cocina1.setEsIndependiente(true);
        cocina1.setNumeroDeFuegos(4);
        Casa casita1 = new Casa(400.5,"La planicie",salon1,cocina1);
        System.out.println("1ER SALON ");
        System.out.println("1er salon de la Casa de tipo " + salon1.getTipoSalon() + " con "+ salon1.getNumeroDeTelevisores()+" televisores  " );
        System.out.println("");
       
        System.out.println("1ERA COCINA ");
        System.out.println("1era Cocina es independiente " + cocina1.isEsIndependiente() +
                                    " con "+ cocina1.getNumeroDeFuegos()+" numeros de fuegos");
        System.out.println("");
       
        System.out.println("LA CASA ");
        System.out.println("Con una superficie de "+ casita1.getSuperficie()+
                                "km2 ubicado en "+casita1.getDireccion()+
                                " con un salon de "+casita1.getSalonCasa().getTipoSalon()+
                                " y "+casita1.getSalonCasa().getNumeroDeTelevisores()+" televisores "+
                                "ademas de una cocina independiente "+casita1.getCocina().isEsIndependiente()+
                                " con "+casita1.getCocina().getNumeroDeFuegos()+" numeros de fuegos");
    }
   
}
« Última modificación: 24 de Abril 2015, 21:43 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas, en principio veo perfecto tu ejercicio, has hecho un main incluso que no se tenia porqué, genial.

Hay un metodo en CocinaCasa, yo le pondria getEsIndependiente() más que nada por seguir un patrón, sino , cuando tuvieras muchisimos mas métodos... sería mas complicado.

 public boolean isEsIndependiente() {
        return esIndependiente;
    }

En la clase Casa te falta el setDireccion() aunque como veo que también falta el } de final de clase... igual es un problema al pegar el código.

rogergcc

  • Sin experiencia
  • *
  • Mensajes: 17
    • Ver Perfil
Muchas Gracias Lorenzo y una consulta mas.
Seria mejor tener un método en cada clase para enviar datos en vez de codificar en el main verdad? Gracias

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola rogergcc, el uso del main no se explica en el curso hasta la entrega CU00655B, por tanto para este ejercicio no es necesario usar main ya que el main se explica más adelante. En este ejercicio los objetos deben crearse usando BlueJ (supongo que vienes siguiendo el curso desde el principio, si no es así te recomiendo que lo hagas).

En la clase Casa te faltan los métodos get y set de los atributos objeto, para ver cómo se trabaja con métodos y atributos objeto recomiendo leer esto: https://www.aprenderaprogramar.com/foros/index.php?topic=1220.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".