Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ronal.d87 en 09 de Junio 2015, 06:11
-
Hola a todos he aquí el código del ejercicio
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
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
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
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
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");
}
}
-
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:
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:
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:
public Casa(double valorSuperficie, String valorDireccion,
SalonCasa valorSalon, CocinaCasa valorCocina){
Analízalo y cualquier duda estamos aquí para ayudarte. Saludos.