Autor Tema: Paso de objetos como parámetros Java ¿deben poder manipularse objetos? CU00642B  (Leído 2242 veces)

hymsoft

  • Intermedio
  • ***
  • Mensajes: 103
  • hymsoft
    • Ver Perfil
Hola de nuevo!!! como prometí en post anteriores la declaración de variables la hice al principio!!! Expongo mi respuesta al ejercicio CU00642B del taller Aprende a programar en Java como si estuvieras en primero.

En cuanto al ejercicio tengo una duda. En el segundo constructor de la clase casa que recibe los parametros, primero tengo que crear los objetos SalonCasa y CocinaCasa. Ahora bien, en el caso que quiera modificar los atributos de esos objetos, tendria que construir metodos en la clase CASA que a su vez llame a los metodos de las clases SALONCASA y COCINACASA??

Espero se entienda mi duda.

Aqui el codigo de las clases

Código: [Seleccionar]
/**
 * Clase SalonCasa (CU00642B)
 *
 * @author Hugo Segura
 * @version 0.2
 */
public class SalonCasa
{
   //Declaracion de variables
   private int numeroDeTelevisores;
   private String tipoSalon;
   //fin declaracion de variables
   
   //constructor
   public SalonCasa(){
       numeroDeTelevisores = 0;//numero de televisores
       tipoSalon = "Desconocido";//tipo de salon por ejemplo comedor, living, etc
    }//fin constructor
   
    //metodo para asignar la cantidad de televisores
    public void setNumeroDeTelevisores(int numeroDeTelevisores){
        this.numeroDeTelevisores = numeroDeTelevisores;
    }//fin getNumeroDeTelevisores
    //metodo para asignar el tipo de salon
    public void setTipoSalon(String tipoSalon){
        this.tipoSalon = tipoSalon;
    }//fin setTipoSalon
   
    //metodo para recuperar la cantidad de televisores
    public int getNumeroDeTelevisores(){
        return numeroDeTelevisores;
    }//fin getNumeroDeTelevisores
    //metodo para recuperar el tipo de salon
    public String getTipoSalon(){
        return tipoSalon;
    }//fin getTipoSalon
}
Código: [Seleccionar]
/**
 * Clase CocinaCasa (CU00642B)
 *
 * @author Hugo Segura
 * @version 0.2
 */
public class CocinaCasa
{
    //declaracion de variables
    private boolean esIndependiente;//es o no independiente la cocina si(true) / no(false)
    private int numeroDeFuegos;//cantidd de hornallas de la cocina
    //fin declaracion de variables
   
    //constructor
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }//fin constructor
   
    //metodo para asignar si es o no independiente la cocina si(true) / no(false)
    public void setEsIndependiente(boolean esIndependiente){
        this.esIndependiente = esIndependiente;
    }//fin getEsIndependiente
    //metodo para asignar la cantidad de fuegos
    public void setNumeroDeFuegos(int numeroDeFuegos){
        this.numeroDeFuegos = numeroDeFuegos;
    }//fin getNumeroDeFuegos
   
    //metodo para obtener si es o no independiente la cocina si(true) / no(false)
    public boolean getEsIndependiente(){
        return esIndependiente;
    }//fin getEsIndependiente
    //metodo para obtener el numero de fuegos
    public int getNumeroDeFuegos(){
        return numeroDeFuegos;
    }//fin getNumeroDeFuegos
}
Código: [Seleccionar]
/**
 * Clase Casa (CU00642B)
 *
 * en esta clase voy a usar las clases SalonCasa y CocinaCasa, como objetos recibidos en parametros
 *
 * @author Hugo Segura
 * @version 0.2
 */
public class Casa
{
    //declaracion de varaibles
    private double superficie;//superficie total de la casa
    private String direccion;//direccion de la casa
    private SalonCasa miSalonCasa;//para crear el objeto salon casa
    private CocinaCasa miCocinaCasa;//para crear el objeto cocina casa
    //fin declaracion de variables
   
    //constructor 1 (sin parametros)
    public Casa(){
        superficie = 0.0;
        direccion = "No Asignada";
        miSalonCasa = new SalonCasa();
        miCocinaCasa = new CocinaCasa();
    }//fin constructor 1
   
    //constructor 2 (con parametros)
    public Casa(double superficie, String direccion, SalonCasa miSalonCasa, CocinaCasa miCocinaCasa){
        this.superficie = superficie;
        this.direccion = direccion;
        this.miSalonCasa = miSalonCasa;
        this.miCocinaCasa = miCocinaCasa;
    }//fin constructor 2
   
    //metodo para asignar la superficie de la casa
    public void setSuperficie(double superficie){
        this.superficie = superficie;
    }//fin getSuperficie
    //metodo para asignar la direccion de la casa
    public void setDireccion(String direccion){
        this.direccion = direccion;
    }//fin setDireccion
    //metodo para asignar el objeto miSalonCasa
    public void setSalonCasa(SalonCasa miSalonCasa){
        this.miSalonCasa = miSalonCasa;
    }//fin setSalonCasa
    //metodo para asignar el objeto miCocinaCasa
    public void setCocinaCasa(CocinaCasa miCocinaCasa){
        this.miCocinaCasa = miCocinaCasa;
    }//fin setCocinaCasa
   
    //metodo para recuperar la superficie de la casa
    public double getSuperficie(){
        return superficie;
    }//fin getSuperficie
    //metodo para recuperar la direccion de la casa
    public String getDireccion(){
        return direccion;
    }//fin getDireccion
    //metodo para recuperar el objeto miSalonCasa
    public SalonCasa getMiSalonCasa(){
        return miSalonCasa;
    }//fin getMiSalonCasa
    //metodo para recuperar el objeto miCocinaCasa
    public CocinaCasa getMiCocinaCasa(){
      return miCocinaCasa; 
    }//fin miCocinaCasa
   
}

y mi resultado usando el constructor 2 (recibe parametros)

« Última modificación: 10 de Julio 2016, 16:59 por Alex Rodríguez »
"Una persona inteligente es aquel que sabe ser tan inteligente como para contratar gente mas inteligente que el"

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Re:Paso de objetos como parametros(CU00642B)
« Respuesta #1 en: 01 de Julio 2016, 21:57 »
Hola Hugo,

A mi me parece que el código es correcto pero esperemos a que lo digan los que saben ;)

Sólo por mencionar una pequeñez vi algunas observaciones (aclaraciones) en métodos set que están detallados como gets.
En SalonCasa, setNumeroDeTelevisores: //fin getNumeroDeTelevisores

En CocinaCasa, setEsIndependiente: //fin getEsIndependiente y setNumeroDeFuegos: //fin getNumeroDeFuegos

En Casa, setSuperficie: //fin getSuperficie

Pero como te dije, son pequeñeces ;)

Saludos,
Edu.

hymsoft

  • Intermedio
  • ***
  • Mensajes: 103
  • hymsoft
    • Ver Perfil
Re:Paso de objetos como parametros(CU00642B)
« Respuesta #2 en: 01 de Julio 2016, 22:08 »
Ouch, sip tenes razón. Ahora los corrijo en mi código. Gracias por la observación. Saludos!!!
"Una persona inteligente es aquel que sabe ser tan inteligente como para contratar gente mas inteligente que el"

eduardoc

  • Principiante
  • **
  • Mensajes: 50
    • Ver Perfil
Re:Paso de objetos como parametros(CU00642B)
« Respuesta #3 en: 01 de Julio 2016, 22:19 »
En cuanto al ejercicio tengo una duda. En el segundo constructor de la clase casa que recibe los parametros, primero tengo que crear los objetos SalonCasa y CocinaCasa. Ahora bien, en el caso que quiera modificar los atributos de esos objetos, tendria que construir metodos en la clase CASA que a su vez llame a los metodos de las clases SALONCASA y COCINACASA??

Espero se entienda mi duda.

Me olvidé de esto, voy a responder sin estar seguro ;)

Entiendo que en este caso no es necesario porque por ejemplo el parámetro "SalonCasa miSalonCasa" es un puntero al objeto (una dirección de dónde encontrarlo) por lo que cuando hagas referencia a miSalonCasa si tuvo referencias las va a encontrar igual.

Saliendo de este ejemplo.
Si desde un objeto Casa querés crear un objeto de otra clase y en esta segunda clase agregaste un atributo necesario en el constructor ahí si deberías modificar los parámetros dentro del objeto Casa (pero no es este ejemplo)

Saludos,
Edu.

 

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