Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: hymsoft en 01 de Julio 2016, 20:00
-
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
/**
* 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
}/**
* 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
}/**
* 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)
(http://i.imgur.com/NmPkRhz.png)
-
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.
-
Ouch, sip tenes razón. Ahora los corrijo en mi código. Gracias por la observación. Saludos!!!
-
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.