Autor Tema: Entrega ejercicio CU00641B clases que usan clases java  (Leído 5346 veces)

jogonzalezmor

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Entrega ejercicio CU00641B clases que usan clases java
« en: 21 de Junio 2014, 18:56 »
Buenos días.

Como he estado haciendo esto en mi trabajo, para variar, no lo he podido pasar aún por el compilador, aún así, envío el ejercicio.

Clase SalonCasa
Código: [Seleccionar]
/*Ejercicio CU00641B Clase SalonCasa*/

//Declaración de la clase:
public class SalonCasa{

/*Declaración de atributos*/
int numeroDeTelevisores;
String tipoSalon;


//Declaración del constructor:
public Persona(){

/*Inicialización de variables*/
numeroDeTelevisores = 0;
tipoSalon = "desconocido";

}//Cierre de constructor

/*setters y getters*/

public void setTipoSalon (String valorTipoSalon) {
        tipoSalon = valorTipoSalon;
    } //Cierre del método setter

public void setNumeroDeTelevisores (int valorNumeroDeTelevisores) {
        numeroDeTelevisores = valorNumeroDeTelevisores;
    } //Cierre del método setter

    public int getNumeroDeTelevisores () { return numeroDeTelevisores; } //Cierre del

método getter

    public String getTipoSalon () { return tipoSalon; } //Cierre del método getter

}//Fin de la clase

Clase CocinaCasa
Código: [Seleccionar]
/*Ejercicio CU00641B Clase CocinaCasa*/

//Declaración de la clase:
public class CocinaCasa {

/*Declaración de atributos*/
boolean esIndependiente;
int numeroDeFuegos;

//Declaración del constructor:
public CocinaCasa(){
/*Inicializaciòn de Variables*/
esIndependiente = false;
numeroDeFuegos = 0;


}//Cierre de constructor

/*Setters y getters*/

public void setEsIndependiente (boolean valorEsIndependiente) {
        esIndependiente = valorEsIndependiente;
    } //Cierre del método setter

public void setNumeroDeFuegos (int valorNumeroDeFuegos) {
        numeroDeFuegos = valorNumeroDeFuegos;
    } //Cierre del método setter

    public boolean getEsIndependiente () { return esIndependiente; } //Cierre del

método getter
    public int getNumeroDeFuegos () { return numeroDeFuegos; } //Cierre del método

getter

}//Fin de la clase

y por último, la clase Casa
Código: [Seleccionar]
/*Ejercicio CU00641B Clase Casa*/

//Declaración de la clase:
public class Casa {

/*Declaración de atributos*/
double superficie;
String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;

//Declaración del constructor:
public Casa(){
/*Inicialización de Variables*/
superficie = 0.0;
direccion = "desconocida";
salonCasa = new SalonCasa();
cocina = new CocinaCasa();


}//Cierre de constructor

/*Setters y getters*/
    public void setSuperficie (double valorSuperficie){
superficie = valorSuperficie;
}//Cierre del setter superficie
    public void setDireccion (String valorDireccion){
Direccion = valorDireccion;
}//Cierre del setter direccion

    public void setDatosSalon (int valorNumeroDeTelevisores, String  valorTipoSalon){
salonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);
salonCasa.setTipoSalon (valorTipoSalon);}// Cierre del setter DatosSalon

    public void setDatosCocina (int valorNumeroDeFuegos, boolean valorEsIndependiente){
cocina.setNumeroDeFuegos(valorNumeroDeFuegos);
cocina.setEsIndependiente (valorEsIndependiente)}// Cierre del setter

DatosCocina


 //Método para obtener el valor de un atributo
    public double getSuperficie () { return superficie; } //Cierre del método getter
    public String getDireccion () { return direccion; } //Cierre del método getter

/*Getters de las clases CocinaCasa y SalonCasa*/


}//Fin de la clase

Como pueden ver, me falta los metodos getter para consegir los datos de cocina y salon,  no se me ocurre como obtenerlos T_T  :'( :'( :'(

Me podrían ayudar con esto por favor T_T

Salu2
« Última modificación: 31 de Agosto 2014, 19:20 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2662
    • Ver Perfil
Re:Entrega ejercicio CU00641B
« Respuesta #1 en: 22 de Junio 2014, 21:15 »
Hola, lo he revisado:

En la clase SalonCasa pones public Persona() -- > cambiarlo por public SalonCasa()


En las clases SalonCasa y CocinaCasa te falta poner private delante de la declaración de los atributos.

En la clase casa faltaría private en los atributos superficie y direccion

   double superficie;
   String direccion;
   private SalonCasa salonCasa;
   private CocinaCasa cocina;

Los atributos siempre llevan private delante (al menos siempre que específicamente no se pretenda hacer algo especial)

Los métodos setDatosSalon y setDatosCocina no estarían bien planteados: ver comentarios en https://www.aprenderaprogramar.com/foros/index.php?topic=964

Para ver cómo plantear los métodos get de Cocina y Salon ver comentarios en https://www.aprenderaprogramar.com/foros/index.php?topic=964

Saludos

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Entrega ejercicio CU00641B Corregir!
« Respuesta #2 en: 28 de Junio 2014, 01:12 »
   En esta clase, no declare los atributos de clase como private  debido a que cuando se    crea un objeto tipo Casa con los parametros
(int valorNumeroDeTelevisores, String valorTipoSalon) inicializados en el constructor 2 de la clase Casa, el compilador rechaza la accion
por estar estos atributos declarados private, lo que impide que el valor que se les da a estos atributos pertenecientes también al campo tipo objeto
(nuevoSalonCasa) de la clase Casa, no se almacenen como valor del atributo y por ende tampoco se observa el cambio al hacer "Inspect" sobre un objeto tipo casa y luego "Inspect"
sobre un campo tipo objeto (nuevoSalonCasa)

Clase SalonCasa
Código: [Seleccionar]
public class SalonCasa{
    int numeroDeTelevisores;
    String tipoSalon;

    //Constructor general
    public SalonCasa(){
        numeroDeTelevisores = 0;
        tipoSalon = "Desconocido";
    }
    //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;}
}
 

Clase CocinaCasa
Código: [Seleccionar]
public class CocinaCasa{
    private boolean esIndependiente;
    private int numeroDeFuegos;

    //Constructor general
    public CocinaCasa(){
        esIndependiente = false;
        numeroDeFuegos = 0;
    }
    //setters
    public void setEsIndependiente(boolean valorEsIndependiente){esIndependiente = valorEsIndependiente;}

    public void setNumeroDeFuegos(int valorNumeroDeFuegos){numeroDeFuegos = valorNumeroDeFuegos;}

    //getters
    public boolean getEsIndependiente(){return esIndependiente;}

    public int getNumeroDeFuegos(){return numeroDeFuegos;}
}
 

Clase Casa
Código: [Seleccionar]
public class Casa{
    private double superficie;
    private String direccion;
    private SalonCasa nuevoSalonCasa;
    private CocinaCasa nuevaCocinaCasa;

    //Constructor 1 (general)
    public Casa(){
        superficie = 0.0;
        direccion = "Desconocida";
        nuevoSalonCasa = new SalonCasa();
        nuevaCocinaCasa = new CocinaCasa();
    }
    //Constructor 2 (inicializado)
    public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa,
    int valorNumeroDeTelevisores, String valorTipoSalon){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        nuevoSalonCasa = new SalonCasa();
        nuevaCocinaCasa = new CocinaCasa();
        nuevoSalonCasa.numeroDeTelevisores = valorNumeroDeTelevisores;
        nuevoSalonCasa.tipoSalon = valorTipoSalon;

    }
    //setters para atributos simples de la clase Casa
    public void setSuperficie(double valorSuperficie){superficie = valorSuperficie;}

    public void setDireccion(String valorDireccion){direccion = valorDireccion;}
   
    //setters para los atributos simples de los objetos tipo SalonCasa dentro de la clase Casa
    public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){nuevoSalonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);}

    public void setTipoSalon(String valorTipoSalon){nuevoSalonCasa.setTipoSalon(valorTipoSalon);}
   
    //setters para los atributos simples de los objetos tipo CocinaCasa dentro de la clase Casa
    public void setNumeroDeFuegos(int valorNumeroDeFuegos){nuevaCocinaCasa.setNumeroDeFuegos (valorNumeroDeFuegos);}

    public void setEsIndependiente(boolean valorEsIndependiente){nuevaCocinaCasa.setEsIndependiente(valorEsIndependiente);}


}
 

Salu2
« Última modificación: 28 de Junio 2014, 03:18 por Sniper »
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Entrega ejercicio CU00641B
« Respuesta #3 en: 28 de Junio 2014, 11:28 »
Hola sniper, el código planteado es correcto excepto este constructor en la clase Casa:

Código: [Seleccionar]
    public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa,
    int valorNumeroDeTelevisores, String valorTipoSalon){
        superficie = valorSuperficie;
        direccion = valorDireccion;
        nuevoSalonCasa = new SalonCasa();
        nuevaCocinaCasa = new CocinaCasa();
        nuevoSalonCasa.numeroDeTelevisores = valorNumeroDeTelevisores;
        nuevoSalonCasa.tipoSalon = valorTipoSalon;

    }

Cada objeto debe encargarse de sus atributos, pero no de atributos de otras clases. En este caso la clase Casa tiene que inicializar sus 4 atributos superficie, direccion, nuevoSalonCasa y nuevaCocinaCasa y no debería ocuparse de establecer el número de televisores o el tipo de salón para el objeto de tipo SalonCasa.

El motivo: cada objeto tiene sus tareas y no tiene que inmiscuirse en las tareas propias de otros objetos (principio de la programación orientada a objetos)

Saludos!
Responsable de departamento de producción aprenderaprogramar.com

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Entrega ejercicio CU00641B
« Respuesta #4 en: 28 de Junio 2014, 17:02 »
Entendi2!  ;D
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

jogonzalezmor

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Re:Entrega ejercicio CU00641B clases que usan clases java
« Respuesta #5 en: 27 de Marzo 2015, 15:47 »
Espero estar en lo correcto ahora. He retomado el curso después de varios meses con muchas cosas que hacer que no me dejaban tiempo para éste.

Nuevamente, aquí está mi código.

Clase SalonCasa:
Código: [Seleccionar]
/*Ejercicio CU00641B*/
/*Clase SalonCasa*/

//Declaración de la clase SalonCasa
public class SalonCasa(){
private int numeroDeTelevisores;
private String tipoSalon;

//Constructor de objetos de la clase SalonCasa

public SalonCasa(){
numeroDeTelevisores = 0;
tipoSalon = "desconocido";
}//Cierre del constructor

//Métodos setter de la clase
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){
numeroDeTelevisores = valorNumeroDeTelevisores;
}//Cierre del método

public void setTipoSalon(String valorTipoSalon){
tipoSalon = valorTipoSalon;
}//Cierre del método

//Métodos getter de la clase
public int getNumeroDeTelevisores(){return numeroDeTelevisores;}//Cierre del método
public String getTipoSalon(){return tipoSalon;}//Cierre del método

}//Cierre de la clase

Clase CocinaCasa:
Código: [Seleccionar]
/*Ejercicio CU00641B*/
/*Clase CocinaCasa*/

Declaración de la casa CocinaCasa
public class CocinaCasa(){
private boolean esIndependiente;
private int numeroDeFuegos;

//Constructor de objetos de la clase CocinaCasa

public CocinaCasa(){
esIndependiente = false;
numeroDeFuegos = 0;
}//Cierre del constructor

//Métodos setter de la clase
public void setEsIndependiente(boolean valorEsIndependiente){
esIndependiente = valorEsIndependiente;
}//Cierre del método

public void setNumeroDeFuegos(int valorNumeroDeFuegos){
numeroDeFuegos = valorNumeroDeFuegos;
}//Cierre del método

//Métodos getter de la clase
public boolean getEsIndependiente(){return esIndependiente;}//Cierre del método
public int getNumeroDeFuegos(){return numeroDeFuegos;}//Cierre del método

}//Cierre de la clase

Clase Casa:
Código: [Seleccionar]
/*Ejercicio CU00641B*/
/*Clase Casa*/

//Declaración de la Clase Casa
public class Casa(){
private double superficie;
private String direccion;
private SalonCasa salon;
private CocinaCasa cocina;

//Constructor de objetos de la clase Casa

public Casa(){
superficie = 85;
direccion = "desconocida";
salon = new SalonCasa();//Creamos un objeto salonCasa con el constructor general de SalonCasa
cocina = new CocinaCasa();//Creamos un objeto cocina con el constructor general de CocinaCasa
}//Cierre del constructor

//Métodos setter de la clase
public void setSuperficie(double valorSuperficie){
superficie = valorSuperficie;
}//Cierre del método

public void setDireccion(String valorDireccion){
direccion = valorDireccion;
}//Cierre del método

public void setSalon(SalonCasa valorSalon){
salon = new SalonCasa();
salon.setNumeroDeTelevisores(valor.getNumeroDeTelevisores());
salon.setTipoSalon(valor.getTipoSalon());
}//Cierre del método

public void setCocina(CocinaCasa valorCocina){
cocina = new CocinaCasa();
cocina.setEsIndependiente(valor.getEsIndependiente());
cocina.setNumeroDeFuegos(valor.getNumeroDeFuegos());
}//Cierre del método


//Métodos getter de la clase
public double getSuperficie(){return superficie;}//Cierre del método
public String getDireccion(){return direccion;}//Cierre del método
public SalonCasa getSalon(){return salon;}//Cierre del método
public CocinaCasa getCocina(){return cocina;}//Cierre del método
}//Cierre de la clase


Saludos...

toni_apr

  • Avanzado
  • ****
  • Mensajes: 497
  • Curiosidad, es uno de los pilares del Conocimiento
    • Ver Perfil
Re:Entrega ejercicio CU00641B clases que usan clases java
« Respuesta #6 en: 27 de Marzo 2015, 20:36 »
Hola jogonzalez

Por lo que veo en las clases que envías, parece que las escribes pero no las compilas ni las pruebas, pues dan errores al compilar.

Tienes errores de sintaxis que el compilador te dice como solucionar, esto es otra muestra de que no compilas.

Tú como creador del código, eres el primer interesado en comprobar que tu código funciona bien.

Te pido que antes de enviar tu código lo compiles. Y si te surgen dudas que no sabes como solucionar, aquí nos tienes para ayudarte.
Pero primero te tienes que ayudar a ti mismo.

En la cabecera de la clase tienes esta línea que presenta un error
    public class SalonCasa(){
(Mira como empiezan otras clases.)

Saludos

 

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