Autor Tema: Cómo comprender conceptos de la programación Java orientada a objetos CU00641B  (Leído 3420 veces)

Jlinos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Buenos días. Adjunto el ejercicio de la Entrega Nº 41 (CU00641B) del programa formativo en programación Java de aprenderaprogramar: "Clases que utilizan objetos", para que den su opinión.

Gracias

Clase Casa

Código: [Seleccionar]
public class Casa
{
    // instance variables
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
    //Constructor
    public Casa(){
        superficie = 0.0;
        direccion = "Desconocida";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }//Cierre del constructor
   
    //Métodos setter y getter
    public void setSuperficie(double valorSuperficie){
        superficie = valorSuperficie;
    }//Cierre del método
   
    public void setDireccion(String valorDireccion){
        direccion = valorDireccion;
    }//Cierre del método
   
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
          salonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);
    }//Cierre del método
   
    public void setTipoSalon(String valorTipoSalon){
        salonCasa.setTipoSalon(valorTipoSalon);
    }//Cierre del método
   
    public void setEsIndependiente(boolean valorEsIndependiente){
        cocina.setEsIndependiente(valorEsIndependiente);
    }//Cierre del método
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
    }//Cierre del método
   
    public String getDatosCasa(){
        int numeroDeTelevisores = salonCasa.getNumeroDeTelevisores();
        String tipoSalon = salonCasa.getTipoSalon();
        boolean esIndependiente = cocina.getEsIndependiente();
        String cadenaEsIndependiente = "";
        if(esIndependiente==true){
            cadenaEsIndependiente = "si";
        }else if(esIndependiente==false){
            cadenaEsIndependiente = "no";
        }
        int numeroDeFuegos = cocina.getNumeroDeFuegos();
        String datosCasa = "\nSuperficie: "+superficie+ "\nDireccion: "+direccion+ "\nNumero de televisores: "
        +numeroDeTelevisores+ "\nTipo Salon: "+tipoSalon+ "\nEs independiente: "+cadenaEsIndependiente+
        "\nNumero fuegos " +numeroDeFuegos;
       
        System.out.println(datosCasa);
        return datosCasa;
    }
   
}//Cierre de la clase Casa

Clase SalonCasa

Código: [Seleccionar]
public class SalonCasa
{
    //Atributos
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    //Constructor
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "Desconocido";
    }//Cierre del constructor
   
    //Métodos setter y getter
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
        numeroDeTelevisores = valorNumeroDeTelevisores;
    }//Cierre del método
   
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }//Cierre del método
   
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }//Cierre del método
   
    public String getTipoSalon(){
        return tipoSalon;
    }//Cierre del método
   
}//Cierre de la clase SalonCasa

Clase CocinaCasa

Código: [Seleccionar]
public class CocinaCasa
{
    //Atributos
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    //Constructor
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }//Cierre del constructor
   
    //Métodos getter y setter
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }//Cierre del método
   
    public boolean getEsIndependiente(){
        return esIndependiente;
    }//Cierre del método
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }//Cierre del método
   
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }//Cierre del método
   
« Última modificación: 08 de Julio 2018, 13:35 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, este ejercicio no está bien resuelto porque no se trabaja adecuadamente con los objetos que son atributos de la clase Casa. Por ejemplo no existen los métodos get y set para los atributos objeto. Comprender esto puede resultar un poco trabajoso.

Para el entendiemiento de estos conceptos recomendamos leer estos hilos con calma:

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

Una vez leídos, lo recomendable es volver a escribir la propuesta de solución al ejercicio pues así se verá si se han entendido bien los conceptos o no.

Saludos

Jlinos

  • Sin experiencia
  • *
  • Mensajes: 15
    • Ver Perfil
Buenas tardes Alex.
Te vuelvo a agradecer la aclaración, después de revisar los hilos que me has enviado he visto el fallo de los objetos que son  atributos de la clase Casa.
Gracias.
Casa
Código: [Seleccionar]
public class Casa
{
    // instance variables
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;
    //Constructor
    public Casa(){
        superficie = 0.0;
        direccion = "Desconocida";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();
    }//Cierre del constructor
   
    //Métodos setter y getter
    public void setSuperficie(double valorSuperficie){
        superficie = valorSuperficie;
    }//Cierre del método
   
    public void setDireccion(String valorDireccion){
        direccion = valorDireccion;
    }//Cierre del método
   
    public double getSuperficie(){
        return superficie;
    }//Cierre del método
   
    public String getDireccion(){
        return direccion;
    }//Cierre del método
   
    public void setSalon(SalonCasa valorSalonCasa){
        salonCasa = new SalonCasa();
        salonCasa.setNumeroDeTelevisores(valorSalonCasa.getNumeroDeTelevisores());
        salonCasa.setTipoSalon(valorSalonCasa.getTipoSalon());
    }
   
    public void setCocina(CocinaCasa valorCocinaCasa){
        cocina = new CocinaCasa();
        cocina.setEsIndependiente(valorCocinaCasa.getEsIndependiente());
        cocina.setNumeroDeFuegos(valorCocinaCasa.getNumeroDeFuegos());
    }
   
    public String getDatosCasa(){
        int numeroDeTelevisores = salonCasa.getNumeroDeTelevisores();
        String tipoSalon = salonCasa.getTipoSalon();
        boolean esIndependiente = cocina.getEsIndependiente();
        String cadenaEsIndependiente = "";
        if(esIndependiente==true){
            cadenaEsIndependiente = "si";
        }else if(esIndependiente==false){
            cadenaEsIndependiente = "no";
        }
        int numeroDeFuegos = cocina.getNumeroDeFuegos();
        String datosCasa = "\nSuperficie: "+superficie+ "\nDireccion: "+direccion+ "\nNumero de televisores: "
        +numeroDeTelevisores+ "\nTipo Salon: "+tipoSalon+ "\nEs independiente: "+cadenaEsIndependiente+
        "\nNumero fuegos " +numeroDeFuegos;
       
        System.out.println(datosCasa);
        return datosCasa;
    }
   
}//Cierre de la clase Casa
SalonCasa
Código: [Seleccionar]
public class SalonCasa
{
    //Atributos
    private int numeroDeTelevisores;
    private String tipoSalon;
   
    //Constructor
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "Desconocido";
    }//Cierre del constructor
   
    //Métodos setter y getter
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
        numeroDeTelevisores = valorNumeroDeTelevisores;
    }//Cierre del método
   
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }//Cierre del método
   
    public void setTipoSalon(String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }//Cierre del método
   
    public String getTipoSalon(){
        return tipoSalon;
    }//Cierre del método
   
}//Cierre de la clase SalonCasa
CocinaCasa
Código: [Seleccionar]
public class CocinaCasa
{
    //Atributos
    private boolean esIndependiente;
    private int numeroDeFuegos;
   
    //Constructor
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }//Cierre del constructor
   
    //Métodos getter y setter
    public void setEsIndependiente(boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }//Cierre del método
   
    public boolean getEsIndependiente(){
        return esIndependiente;
    }//Cierre del método
   
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){
        numeroDeFuegos = valorNumeroDeFuegos;
    }//Cierre del método
   
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }//Cierre del método
   
}//Cierre de la clase CocinaCasa

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Ahora bien. Posiblemente el método getDatosCasa() excede un tanto las responsabilidades que tendría un método de la clase Casa. Se dice que una clase es responsable de sus atributos, y por ejemplo el número de televisores no es un atributo de la clase Casa, con lo cual no debería manejarse dentro de esta clase. De cualquier forma esto no es muy relevante, el ejercicio está bien.

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