Autor Tema: Java ¿debe una clase tener get y set de atributos de los atributos? CU00642B  (Leído 3488 veces)

ronal.d87

  • Principiante
  • **
  • Mensajes: 72
    • Ver Perfil
Hola a todos he aquí el código del 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.


Clase Casa

Código: [Seleccionar]
package ejemplo;

public class Casa {
   
    double superficie;
    String direccion;
    SalonCasa salonCasa;
    CocinaCasa cocinaCasa;
 //Constructor  1 
    public Casa(){
        superficie =0.0;
        direccion = "Desconocido";
        salonCasa = new SalonCasa();
        cocinaCasa = new CocinaCasa();
    }
   
    //Constructor 2
    public Casa(int valorSuperficie, String valorDireccion,
            SalonCasa valorSalon, CocinaCasa valorCocina){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        salonCasa = valorSalon;
        cocinaCasa = valorCocina;
    }
   
    public void setSuperficie(double valorSuperficie){
        superficie = valorSuperficie;
    }
   
    public void setDireccion(String valorDireccion){
        direccion = valorDireccion;
    }
   
    public double getSuperficie(){
        return superficie;
    }
   
    public String getDireccion (){
        return direccion;
    }
    //obtener datos del salon de la casa
    public int getTelevisoresSalonCasa(){
        int televisores = salonCasa.getNumeroDeTelevisores();
        return televisores;
    }
   
    public String getTipoSalonCasa(){
        String salon = salonCasa.getTipoSalon();
        return salon;
    }
    //obtener datos de la cocina   
    public int getNumeroFuegos(){
        int fuegos = cocinaCasa.getNumeroDeFuegos();
        return fuegos;
    }
   
    public boolean getEsIndependiente(){
         String independiente = "";
        boolean esIndependiente = cocinaCasa.getEsIndependiente();
        if(esIndependiente == true){
            independiente="Independiente";
            return esIndependiente;
        }else{
            independiente = "No es Independiente";
            return esIndependiente;
        }
       
    }
}



Clase salon casa

Código: [Seleccionar]
package ejemplo;

public class SalonCasa {
    int numeroDeTelevisores;
    String tipoSalon;
   
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "desconocido";
    }
   
    public void setNumeroDeTelevisores(int cantidadTelevisores){
        numeroDeTelevisores = cantidadTelevisores;
    }
   
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }
   
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }
   
    public String getTipoSalon(){
        return tipoSalon;
    }
}



Clase CocinaCasa

Código: [Seleccionar]
package ejemplo;

public class CocinaCasa {
    boolean esIndependiente;
    int numeroDeFuegos;
   
   
    public CocinaCasa(){
        numeroDeFuegos = 0;
        esIndependiente = false;
    }
   
    public void setNumeroDeFuegos(int cantidadDeFuegos){
        numeroDeFuegos = cantidadDeFuegos;
    }
   
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }
   
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }
   
    public boolean getEsIndependiente(){
       
        return esIndependiente;
    }
   
}



clase testCasa


Código: [Seleccionar]
package ejemplo;

public class TestCasa {
   
    public static void main (String [] args){
        SalonCasa salonCasa;
        salonCasa = new SalonCasa();
        CocinaCasa cocinaCasa;
        cocinaCasa =new CocinaCasa ();
        Casa casa1;
        casa1 = new Casa(0.0,"desconocido",salonCasa,cocinaCasa );
               
        System.out.println("la direccion de la casa es: "+casa1.getDireccion()
                +" cuenta con una superficie de: "+casa1.getSuperficie()
                +", la casa tiene un tipo de salon "+casa1.getTipoSalonCasa()
        +" con "+casa1.getTelevisoresSalonCasa()+" Televisores"+". Su cocina es "
                +casa1.getEsIndependiente()+" con "
                + casa1.getNumeroFuegos()+" fuegos");
       
    }
}

« Última modificación: 10 de Junio 2015, 08:23 por Alex Rodríguez »
Ronald Mosquera Mancilla

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:EJERCICIO CU00642B REALIZADO
« Respuesta #1 en: 09 de Junio 2015, 19:04 »
Hola Ronal:

Estuve revisando tu ejercicio y tiene cosas que están muy bien y cosas que debemos revisar.

La clase CocinaCasa y la clase SalonCasa están perfectas.
Respecto a la clase Casa: están muy bien declarados los atributos. También están muy bien los métodos setSuperficie, setDireccion, getDireccion, y getSuperficie.
Sin embargo los demás métodos no deberían existir en esta clase, ya que son métodos que correspondan a las clases SalonCasa y CocinaCasa.
Fíjate lo siguiente: la clase Casa tiene 4 atributos a saber:

Código: [Seleccionar]
    double superficie;
    String direccion;
    SalonCasa salonCasa;
    CocinaCasa cocinaCasa;

Muy bien, por lo tanto la clase Casa deberá tener métodos set y get para esos atributos (no para los atributos de los atributos). Entonces están perfectos los métodos set y get del atributo direccion y del atributo superficie.
Los métodos set y get de los atributos objetos deberían ser:

Código: [Seleccionar]
   public void setSalonCasa (SalonCasa objetoSalon){
   salonCasa = objetoSalon;}
   public void setCocinaCasa (CocinaCasa objetoCocina)
   {cocinaCasa = objetoCocina;}
   
   public SalonCasa getSalonCasa(){return salonCasa;}
   public CocinaCasa getCocinaCasa(){return cocinaCasa;}

Otra cosa: En el Constructor 2, debes cambiar el tipo del parámetro valorSuperficie. No es int sino que debe ser de tipo double ya que así lo declaraste previamente. Por lo tanto ese Constructor 2 debería quedar:

Código: [Seleccionar]
    public Casa(double valorSuperficie, String valorDireccion,
            SalonCasa valorSalon, CocinaCasa valorCocina){

Analízalo y cualquier duda estamos aquí para ayudarte. 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".