Autor Tema: Java introducir un objeto dentro de una clase Ejercicio curso resuelto CU00641B  (Leído 2871 veces)

javalopez

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 19
    • Ver Perfil
Buenas noches amigos, les dejo el código del ejercicio para que lo chequeen.

Clase SalonCasa

Código: [Seleccionar]
public class SalonCasa{
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    public SalonCasa(){
        numeroDeTelevisores=0;
        tipoSalon="Desconocido";
    }
   
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){numeroDeTelevisores=valorNumeroDeTelevisores;}
    public void setTipoSalon(String valorTipoSalon){tipoSalon=valorTipoSalon;}
   
    public int getNumeroDeTelevisores(){return numeroDeTelevisores;}
    public String getTipoSalon(){return tipoSalon;}
           
}


Clase CocinaCasa

Código: [Seleccionar]
public class CocinaCasa{

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

}


Clase Casa

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

    public Casa(){
        salonCasa=new SalonCasa();
        cocinaCasa=new CocinaCasa();
    }

    //Metodos que ingresan informacion
    public void setSuperficieCasa(double valorSuperficie){
        superficie=valorSuperficie;
    }

    public void setDireccionCasa(String valorDireccion){
        direccion=valorDireccion;
    }

    //metodo que devuelve la información sobre el objeto Casa.
    public String getDatosCasa(){
        String independiente="";
        int numeroDeTelevisores=salonCasa.getNumeroDeTelevisores();
        String tipoSalon=salonCasa.getTipoSalon();
        boolean esIndependiente=cocinaCasa.getEsIndependiente();
        int numeroDeFuegos=cocinaCasa.getNumeroDeFuegos();
        if (esIndependiente==true){
            independiente="Independiete";
        }
        else{
            independiente="No independiente";}
        String datosCasa="El objeto Casa, presenta las siguientes características: Se encuentra ubicada en la calle: " +direccion+ ". Cantidad de metros cubiertos: " +superficie+ ". Cantidad de televisores: " +numeroDeTelevisores+ ". Tipo de salon: " +tipoSalon+ ". La cocina se considera: " +independiente+ ". El artefacto cocina posee " +numeroDeFuegos+ " fuegos.";
        System.out.println (datosCasa);
        return datosCasa;
    }
}

Saludos y gracias!!
« Última modificación: 01 de Junio 2015, 08:42 por Alex Rodríguez »

RaGa

  • Moderador Global
  • Intermedio
  • *******
  • APR2.COM
  • Mensajes: 234
    • Ver Perfil
Re:Ejercicio CU00641B para corrección
« Respuesta #1 en: 30 de Mayo 2015, 04:02 »
Hola javalopez:

Revisé tu código y he de decirte que tu ejercicio está muy bien! Felicitaciones.
Destaco sobre todo que el código está muy bien estructurado, y que has nombrado las clases, los métodos, y los parámetros respetando las convenciones.

Me resta únicamente hacerte una observación que es la siguiente:
En el constructor de la clase Casa se deberían inicializar todas los campos de instancia. Es decir que además de crear los objetos tipo SalonCasa y CocinaCasa, deberíamos inicializar el campo dirección y superficie a valores por defecto.
La consigna del ejercicio decía:
Citar
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.

De esta manera el constructor de la clase Casa quedaría:

Código: [Seleccionar]
    public Casa(){
        salonCasa=new SalonCasa();
        cocinaCasa=new CocinaCasa();
        superficie=0.0;
        direccion="";
    }

Por último destaco hayas codificado un nuevo método, el cual no se pedía en la consigna del ejercicio, celebro esa iniciativa!
El nombre del método getDatosCasa() está perfectamente elegido ya que has definido un método tipo función, donde se devuelve un atributo tipo String llamado datosCasa.
Una cuestión interesante de analizar es la siguiente: si el método tipo funcion  getDatosCasa() devuelve un String, esa debería ser su única tarea, es para lo que sirve el método, una tarea bien específica. Por lo tanto no debería exisitir aquí una línea como:

Código: [Seleccionar]
System.out.println (datosCasa);
pero por el momento dejaremos esta línea en el método.
Pero sí ten en cuenta para el futuro, que un método que imprima por consola, debería ser un método tipo procedimiento y cuya función solamente fuese esa: sacar datos por consola (no retornar datos), a la cual podríamos nombrar como mostrarDatosCasa() o un nombre similar.


 

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