Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: BelCrow en 02 de Septiembre 2014, 02:26
		
			
			- 
				Aquí mi practica CU00642B, por favor revisar....
 
 (Nota: tuve que agregarles un constructor con parámetros a CocinaCasa y a SalonCasa, para que no me tire el error en la Compilación de Casa, aun ambas clases tiene su constructor que les defina valores por defecto también. )
 
 SalonCasa:
 
 //clase
 public class SalonCasa {
 private int numeroDeTelevisores;
 private String tipoSalon;
 
 //constructor
 public SalonCasa () {
 numeroDeTelevisores = 0;
 tipoSalon = "Desconocido";
 }
 
 //constructor con parametros
 public SalonCasa (int valorNumeroDeTelevisores, String valorTipoSalon) {
 numeroDeTelevisores = valorNumeroDeTelevisores;
 tipoSalon = valorTipoSalon;
 }
 
 //setters
 public void setNumeroDeTelevisores (int valorNumeroDeTelevisores) {
 numeroDeTelevisores = valorNumeroDeTelevisores;
 }
 
 public void setTipoSalon (String valorTipoSalon) {
 tipoSalon = valorTipoSalon;
 }
 
 //getters
 public int getNumeroDeTelevisores () {return numeroDeTelevisores;}
 
 public String getTipoSalon () {return tipoSalon;}
 }
 
 CocinaCasa:
 
 //clase
 public class CocinaCasa {
 private boolean esIndependiente;
 private int numeroDeFuegos;
 
 //constructor
 public CocinaCasa () {
 esIndependiente = false;
 numeroDeFuegos = 0;
 }
 
 //contructor con parametros
 public CocinaCasa (boolean valorEsIndependiente, int valorNumeroDeFuegos) {
 esIndependiente = valorEsIndependiente;
 numeroDeFuegos= valorNumeroDeFuegos;
 }
 
 //setters
 public void setEsIndependiente (boolean valorEsIndependiente) {
 esIndependiente = valorEsIndependiente;
 }
 
 public void setNumeroDeFuegos (int valorNumeroDeFuegos) {
 numeroDeFuegos = valorNumeroDeFuegos;
 }
 
 //gettes
 public boolean getEsIndependente () {return esIndependiente;}
 
 public int getNumeroDeFuegos () {return numeroDeFuegos;}
 }
 
 Casa:
 
 //clase con otras clases
 public class Casa {
 private double superficie;
 private String direccion;
 private SalonCasa salonCasa;
 private CocinaCasa cocina;
 
 //constructor
 public Casa () {
 superficie = 0.0;
 direccion = "";
 salonCasa = new SalonCasa ();
 cocina = new CocinaCasa ();
 }
 
 //constuctor con parametros
 public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {
 superficie = valorSuperficie;
 direccion = valorDireccion;
 salonCasa = new SalonCasa (objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon() );
 cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependente(), objetoCocinaCasa.getNumeroDeFuegos() );
 }
 
 //setters de esta clase
 public void setSuperficie (double valorSuperficie) {
 superficie = valorSuperficie;
 }
 
 public void setDireccion (String valorDireccion) {
 direccion = valorDireccion;
 }
 
 //setters de las otras clases
 
 public void setSalonCasa (int valorNumeroDeTelevisores, String valorTipoSalon) {
 salonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);
 salonCasa.setTipoSalon(valorTipoSalon);
 }
 
 public void setCocina (boolean valorEsIndependiente, int valorNumeroDeFuegos) {
 cocina.setEsIndependiente(valorEsIndependiente);
 cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
 }
 
 //getters de esta clase
 public double getSuperficie () {return superficie;}
 
 public String getDireccion () {return direccion;}
 
 //getters de las otras clases
 public SalonCasa getSalonCasa () {return salonCasa;}
 
 public CocinaCasa getCocina () {return cocina;}
 }
 
- 
				Has puesto como referencia CU006342B pero ese número no existe...
 
 El código es correcto aunque este fragmento:
 
 Clase Casa:
 
     //setters de las otras clases
 
 public void setSalonCasa (int valorNumeroDeTelevisores, String valorTipoSalon) {
 salonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);
 salonCasa.setTipoSalon(valorTipoSalon);
 }
 
 public void setCocina (boolean valorEsIndependiente, int valorNumeroDeFuegos) {
 cocina.setEsIndependiente(valorEsIndependiente);
 cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
 }
 
 
 Sería mejor resolverlo usando objetos como comentamos aquí: https://www.aprenderaprogramar.com/foros/index.php?topic=1220.0
 
 Cuanto antes te acostumbres a trabajar con objetos mejor para tí.
 
 Saludos!!!
- 
				haaa en CU006342B se me fue un 3 de sobra :P sorry....
 
 respecto a lo del fragmento :
 
     //setters de las otras clases
 
 public void setSalonCasa (int valorNumeroDeTelevisores, String valorTipoSalon) {
 salonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);
 salonCasa.setTipoSalon(valorTipoSalon);
 }
 
 public void setCocina (boolean valorEsIndependiente, int valorNumeroDeFuegos) {
 cocina.setEsIndependiente(valorEsIndependiente);
 cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
 }
 
 me habías dicho que esa parte esta bien orientada a objetos de acuerdo a la forma 3 que fue la que utilice..
 
 Forma 1 (trabajando con objetos):
 
 Recibir un objeto e igualar el atributo al objeto recibido. Sería:
 
 public void setSalonCasa (SalonCasa objetoSalon) {
 salonCasa = objetoSalon;
 }
 
 
 Forma 2 (trabajando con objetos):
 
 Recibir un objeto y crear un nuevo objeto cuyos atributos sean iguales a los del objeto recibido:
 
 public void setSalonCasa (SalonCasa objetoSalon) {
 salonCasa = new SalonCasa();
 salonCasa.setNumeroDeTelevisores(objetoSalon.getNumeroDeTelevisores);
 salonCasa.setTipoSalon(objetoSalon.getTipoSalon);
 }
 
 Forma 3 (recibiendo parámetros primitivos):
 
 La forma que tú has definido.
 
 
 Forma 4:
 
 Incluiría otras formas de hacer las cosas.
 
 utilice la misma clase Casa del CU00641 para este ejercicio CU00643..
 
 pero para ver si entendí bien, me recomiendas que utilice la forma 2 que utiliza objetos en los parámetros, de esta forma?
 
 Casa:
 
 //clase con otras clases
 public class Casa {
 private double superficie;
 private String direccion;
 private SalonCasa salonCasa;
 private CocinaCasa cocina;
 
 //constructor
 public Casa () {
 superficie = 0.0;
 direccion = "";
 salonCasa = new SalonCasa ();
 cocina = new CocinaCasa ();
 }
 
 //constuctor con parametros
 public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {
 superficie = valorSuperficie;
 direccion = valorDireccion;
 salonCasa = new SalonCasa (objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon() );
 cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependente(), objetoCocinaCasa.getNumeroDeFuegos() );
 }
 
 //setters de esta clase
 public void setSuperficie (double valorSuperficie) {
 superficie = valorSuperficie;
 }
 
 public void setDireccion (String valorDireccion) {
 direccion = valorDireccion;
 }
 
 //setters de las otras clases
 
 public void setSalonCasa (SalonCasa objetoSalon) {
 salonCasa = new SalonCasa();
 salonCasa.setNumeroDeTelevisores(objetoSalon.getNumeroDeTelevisores());
 salonCasa.setTipoSalon(objetoSalon.getTipoSalon());
 }
 
 public void setCocina (CocinaCasa objetoCocina) {
 cocina = new CocinaCasa();
 cocina.setEsIndependiente(objetoCocina.getEsIndependente());
 cocina.setNumeroDeFuegos(objetoCocina.getNumeroDeFuegos());
 }
 
 //getters de esta clase
 public double getSuperficie () {return superficie;}
 
 public String getDireccion () {return direccion;}
 
 //getters de las otras clases
 public SalonCasa getSalonCasa () {return salonCasa;}
 
 public CocinaCasa getCocina () {return cocina;}
 }
 
 nota: quieres decir que el metodo del fragmento no esta mal pero para acostumbrarme a trabajar con objetos utilice la forma 2?     favor de corregirme si me equivoco Mario, me es de mucha ayuda!!!.
- 
				Hola, en programación las cosas se pueden hacer de muchas maneras. Si te fijas en las observaciones que te había hecho en  el ejercicio CU00641B si te fijas en la forma 1 y forma 2 te puse entre paréntesis (Trabajando con objetos) y en la forma 3 te puse (recibiendo parámetros primitivos)
 
 >>quieres decir que el metodo del fragmento no esta mal pero para acostumbrarme a trabajar con objetos utilice la forma 2?
 
 Exactamente, acostúmbrate a trabajar con objetos.
 
 Has entendido bien y tu definición del código es ahora mejor.
 
 Fíjate que ya que tienes constructores con parámetros podrías hacer:
 
 public void setCocina (CocinaCasa objetoCocina) {
 cocina = new CocinaCasa(objetoCocina.getEsIndependente(), objetoCocina.getNumeroDeFuegos() );
 }
 
 Pruébalo a ver si te funciona. En caso de que te funcione, piensa que en general será mejor usar dos líneas de código antes que cuatro  ;)
 
 Saludos
- 
				Si hace lo mismo y con 2 lineas menos....... muchas gracias Mario..
 
 Casa:
 
 //clase con otras clases
 public class Casa {
 private double superficie;
 private String direccion;
 private SalonCasa salonCasa;
 private CocinaCasa cocina;
 
 //constructor
 public Casa () {
 superficie = 0.0;
 direccion = "";
 salonCasa = new SalonCasa ();
 cocina = new CocinaCasa ();
 }
 
 //constuctor con parametros
 public Casa (double valorSuperficie, String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {
 superficie = valorSuperficie;
 direccion = valorDireccion;
 salonCasa = new SalonCasa (objetoSalonCasa.getNumeroDeTelevisores(), objetoSalonCasa.getTipoSalon() );
 cocina = new CocinaCasa (objetoCocinaCasa.getEsIndependente(), objetoCocinaCasa.getNumeroDeFuegos() );
 }
 
 //setters de esta clase
 public void setSuperficie (double valorSuperficie) {
 superficie = valorSuperficie;
 }
 
 public void setDireccion (String valorDireccion) {
 direccion = valorDireccion;
 }
 
 //setters de las otras clases
 
 public void setSalonCasa (SalonCasa objetoSalon) {
 salonCasa = new SalonCasa(objetoSalon.getNumeroDeTelevisores(), objetoSalon.getTipoSalon());
 }
 
 public void setCocina (CocinaCasa objetoCocina) {
 cocina = new CocinaCasa(objetoCocina.getEsIndependente(), objetoCocina.getNumeroDeFuegos());
 }
 
 //getters de esta clase
 public double getSuperficie () {return superficie;}
 
 public String getDireccion () {return direccion;}
 
 //getters de las otras clases
 public SalonCasa getSalonCasa () {return salonCasa;}
 
 public CocinaCasa getCocina () {return cocina;}
 }