/* Ejemplo - aprendeaprogramar.com */
//Esta clase representa datos de éste objeto Casa y de otros relacionados.
public class Casa { // El nombre de la Clase
// comenzamos por las propiedades, atributos o campos de la clase
private double superficie ;
private String direccion;
private SalonCasa salonKasa ; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
private CocinaCasa cocinaKasa; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
//Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor
public Casa() {
superficie = 0 ;
direccion = "Desconocido";
salonKasa = new SalonCasa () ; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
cocinaKasa = new CocinaCasa (); // pongo K para distinguirlo mejor ( con K son los de ésta clase )r
} //Cierre del constructor … el código continúa …
// SETTERS
public void setSuperficie (double valorSuperficie) { superficie = valorSuperficie; } //Cierre del método
public void setDireccion (String valorDireccion) { direccion = valorDireccion ; } //Cierre del método
public void setCasaNumTv(int SCasaNumTv) { salonKasa.setNumeroTelevisores(SCasaNumTv) ;}
public void setCasaTipoSalon(String SCasaTipoSalon) { salonKasa.setTipoSalon(SCasaTipoSalon) ;}
public void setCasaEsIndependiente( boolean SCasaEsIndependiente ) { cocinaKasa.setEsIndependiente(SCasaEsIndependiente);}
public void setCasaNumDeFuegos( int SCasaNumDeFuegos ) { cocinaKasa.setNumeroDeFuegos(SCasaNumDeFuegos);}
//GETTERS
public double getSuperficie () { return superficie; } //Cierre del método
public String getDireccion () { return direccion; } //Cierre del método
public String getDatosTodaLaCasa () {
int KasaNumTV = salonKasa.getNumeroTelevisores() ;
String KasaTipoSalon = salonKasa.getTipoSalon() ;
boolean KasaEsIndependiente = cocinaKasa.getEsIndependiente();
int KasaNumeroDeFuegos = cocinaKasa.getNumeroDeFuegos();
String datosDeLaKasa = "Los datos de la casa son : Superficie "+ superficie + " Dirección : " + direccion +
" Numero de Televisores : " + KasaNumTV + " Tipo de Salon : " + KasaTipoSalon +
" Cocina Independiente : " +KasaEsIndependiente + " Numero de Fuegos : " + KasaNumeroDeFuegos ;
System.out.println( datosDeLaKasa) ;
return datosDeLaKasa ;
} //Cierre del método
} // cierre de la clase
public class CocinaCasa { // El nombre de la Clase
// comenzamos por las propiedades, atributos o campos de la clase
private boolean esIndependiente;
private int numeroDeFuegos;
//Constructor:
public CocinaCasa() {
esIndependiente = false ;
numeroDeFuegos = 0;
} //Cierre del constructor … el código continúa …
//Método para ESTABLECER el numeroTelevisores
public void setEsIndependiente (boolean valorEsIndependiente) {
esIndependiente = valorEsIndependiente; // el número de televisores
} //Cierre del método
//Método para establecer el tipo de salon
public void setNumeroDeFuegos (int valorNumeroDeFuegos) {
numeroDeFuegos = valorNumeroDeFuegos; //El tipo de salon
} //Cierre del método
//Método para OBTENER el numero de televisores
public boolean getEsIndependiente () { return esIndependiente; } //Cierre del método
//Método para obtener el tipo de salon
public int getNumeroDeFuegos () { return numeroDeFuegos; } //Cierre del método
} // cierre de la clase
public class SalonCasa { // El nombre de la Clase
// comenzamos por las propiedades, atributos o campos de la clase
private int numeroTelevisores;
private String tipoSalon;
//Constructor:
public SalonCasa() {
numeroTelevisores = 0 ;
tipoSalon = "Desconocido";
} //Cierre del constructor … el código continúa …
//Método para ESTABLECER el numeroTelevisores
public void setNumeroTelevisores (int valorNumeroTelevisores) {
numeroTelevisores = valorNumeroTelevisores; // el número de televisores
} //Cierre del método
//Método para establecer el tipo de salon
public void setTipoSalon (String valorTipoSalon) {
tipoSalon = valorTipoSalon; //El tipo de salon
} //Cierre del método
//Método para OBTENER el numero de televisores
public int getNumeroTelevisores () { return numeroTelevisores; } //Cierre del método
//Método para obtener el tipo de salon
public String getTipoSalon () { return tipoSalon; } //Cierre del método
} // cierre de la clase
Correcto, en el enunciado no se pedia ( por lo tanto y de forma estricta, sobra)
Y otros que no deberían estar, son los métodos:
setCasaNumTv, setCasaTipoSalon, setCasaEsIndependiente, setCasaNumDeFuegos y getDatosTodaLaCasa.
Los cuatro primeros manipulan atributos de las clases SalonCasa y CocinaCasa y el último getDatosTodaLaCasa no se pedía en el enunciado del ejercicio, aunque es una buena idea mostrar información de toda la casa.
Los atributos que has nombrado salonKasa y cocinaKasa necesitan como los otros atributos sus setters y sus getters.
El getter del atributo salonKasa, sería así:
public SalonCasa getSalonKasa() { return salonKasa; }
Y el setter sería:
public void setSalonKasa (SalonCasa valorSalon) {
salonKasa = valorSalon;
}
Te propongo que reformes la clase Casa para que tenga todos los métodos necesarios.
Para probar estas clases sigue las indicaciones que se muestran en esta lección junto a la imagen mostrada.
no me quedo claro si debemos imprimir o no la información.
segun leo en tu corrección creo que no.
¿Que crees tu?
// constructor 2
public Casa( double superficie, String direccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {
superficie = getSuperficie() ;
direccion = getDireccion() ;
// creamos un objeto salonKasa con los mismos datos de la clase SalonCasa recibidos como parámetros
//---------aquí da el error :
// constuctor SalonCasa in class SalonCasa cannot be applied to given types;
// required : no arguments
// found:int.java.lang.String
// reason: actual and formal argument lists differ in length
// the operator that you use here cannot be used for the type of value that you are
//using it for. You are either using the wrong type here or the wrong operator.
salonKasa = new SalonCasa(objetoSalonCasa.getNumeroTelevisores(), objetoSalonCasa.getTipoSalon() );
cocinaKasa = new CocinaCasa(objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos() );
}
Pero mi pregunta ahora es :
Con el método set y get de estos atributos,
¿que es lo que estamos haciendo realmente?
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.
/* Ejemplo - aprendeaprogramar.com */
//Esta clase representa datos de éste objeto Casa y de otros relacionados.
public class Casa { // El nombre de la Clase
// comenzamos por las propiedades, atributos o campos de la clase
private double superficie ;
private String direccion;
private SalonCasa salonKasa ; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
private CocinaCasa cocinaKasa; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
//Constructor: cuando se cree un objeto taxi se ejecutará el código que incluyamos en el constructor
public Casa() {
superficie = 0 ;
direccion = "Desconocido";
salonKasa = new SalonCasa () ; // pongo K para distinguirlo mejor ( con K son los de ésta clase )
cocinaKasa = new CocinaCasa (); // pongo K para distinguirlo mejor ( con K son los de ésta clase )r
} //Cierre del constructor … el código continúa …
// constructor 2
public Casa( double superficie, String direccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa) {
superficie = getSuperficie() ;
direccion = getDireccion() ;
// creamos un objeto salonKasa con los mismos datos de la clase SalonCasa recibidos como parámetros
salonKasa = new SalonCasa(objetoSalonCasa.getNumeroTelevisores(), objetoSalonCasa.getTipoSalon() );
cocinaKasa = new CocinaCasa(objetoCocinaCasa.getEsIndependiente(), objetoCocinaCasa.getNumeroDeFuegos() );
}
// SETTERS
public void setSuperficie (double valorSuperficie) { superficie = valorSuperficie; } //Cierre del método
public void setDireccion (String valorDireccion) { direccion = valorDireccion ; } //Cierre del método
public void setSalonKasa (SalonCasa valorSalon) { salonKasa = valorSalon; } // hay que definir el set correspondiente al atributo
public void setCocinaKasa (CocinaCasa valorCocina) { cocinaKasa = valorCocina; } // hay que definir el set correspondiente al atributo
//////// éstos no están correctos en este momento y ejercicio
// public void setCasaNumTv(int SCasaNumTv) { salonKasa.setNumeroTelevisores(SCasaNumTv) ;}
// public void setCasaTipoSalon(String SCasaTipoSalon) { salonKasa.setTipoSalon(SCasaTipoSalon) ;}
// public void setCasaEsIndependiente( boolean SCasaEsIndependiente ) { cocinaKasa.setEsIndependiente(SCasaEsIndependiente);}
// public void setCasaNumDeFuegos( int SCasaNumDeFuegos ) { cocinaKasa.setNumeroDeFuegos(SCasaNumDeFuegos);}
//GETTERS
public double getSuperficie () { return superficie; } //Cierre del método
public String getDireccion () { return direccion; } //Cierre del método
public SalonCasa getSalonKasa() { return salonKasa; } // hay que definir el get correspondiente al atributo
public CocinaCasa getCocinaKasa() { return cocinaKasa; } // hay que definir el get correspondiente al atributo
public String getDatosTodaLaCasa () {
int KasaNumTV = salonKasa.getNumeroTelevisores() ;
String KasaTipoSalon = salonKasa.getTipoSalon() ;
boolean KasaEsIndependiente = cocinaKasa.getEsIndependiente();
int KasaNumeroDeFuegos = cocinaKasa.getNumeroDeFuegos();
String datosDeLaKasa = "Los datos de la casa son : Superficie "+ superficie + " Dirección : " + direccion +
" Numero de Televisores : " + KasaNumTV + " Tipo de Salon : " + KasaTipoSalon +
" Cocina Independiente : " +KasaEsIndependiente + " Numero de Fuegos : " + KasaNumeroDeFuegos ;
System.out.println( datosDeLaKasa) ;
return datosDeLaKasa ;
} //Cierre del método
} // cierre de la clase