Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: heseos en 28 de Abril 2014, 20:09
-
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. Compila el código para comprobar que no presenta errores, crea un objeto de tipo Casa. Comprueba que se inicializan correctamente consultando el valor de sus atributos después de haber creado los objetos. CocinaCasa
/**
*
*
*/
public class CocinaCasa {
boolean esIndispensable;
int numeroDeFuegos;
public CocinaCasa(){
esIndispensable = false;
numeroDeFuegos = 0;
}
}
SalonCasa /**
* Write a description of class SalonCasa here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class SalonCasa{
int numeroDeTelevisores;
String tipoSalon;
public SalonCasa (){
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
}
Casa Aqui tengo la impresión de que algo me falta pero creo que no xD, Favor corregir e instruir si algo esta mal.
public class Casa{
double superficie;
String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;
public Casa (){
superficie = 20.30;
direccion ="Desconocida";
salonCasa = new SalonCasa ();
cocina = new CocinaCasa ();
}
}
Para el (CU00642B) Favor corregir si hay algún error o falta algo
/**
*
*
*/
public class Casa{
double superficie;
String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;
public Casa (){
superficie = 20.30;
direccion ="Desconocida";
salonCasa = new SalonCasa ();
cocina = new CocinaCasa ();
}
public Casa (double valorSuperficie, String valorDireccion, SalonCasa valorSalonCasa, CocinaCasa valorCocina){
superficie = valorSuperficie;
direccion = valorDireccion;
salonCasa = valorSalonCasa;
cocina = valorCocina;
}
}
-
Hola, las cosas que tendrías que corregir en la CU00641B:
todos los atributos tienen que ser private, estás dejando algunos atributos sin declarar como private y eso no se considera correcto. Por ejemplo:
public class Casa{
double superficie;
Debería ser:
public class Casa{
private double superficie;
Esto te ocurre en varias clases y con varios atributos. De resto está correcto.
En la CU006432 mismo problema: dejas atributos sin indicar que son private. Por lo demás, está correcto ;)
-
Con el mismo código se pueden verificar ambos ejercicios...
public class CocinaCasa
public class CocinaCasa{
int numeroDeFuegos;
boolean esIndependiente;
//Constructor general
public CocinaCasa(){
numeroDeFuegos = 0;
esIndependiente = false;
}
//setters
public void setNumeroDeFuegos(int valorNumeroDeFuegos){numeroDeFuegos = valorNumeroDeFuegos;}
public void setEsIndependiente(boolean valorEsIndependiente){esIndependiente = valorEsIndependiente;}
}
public class SalonCasa
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;}
}
public class Casa
public class Casa{
private double superficie;
private String direccion;
private SalonCasa miSalonCasa;
private CocinaCasa laCocinaCasa;
//Constructor general
public Casa(){
superficie = 0.0;
direccion = "Desconocida";
miSalonCasa = new SalonCasa();
laCocinaCasa = new CocinaCasa();
}
public Casa(double valorSuperficie , String valorDireccion, SalonCasa objetoSalonCasa, CocinaCasa objetoCocinaCasa){
superficie = valorSuperficie;
direccion = valorDireccion;
miSalonCasa = new SalonCasa();
laCocinaCasa = new CocinaCasa();
}
//setters para atributos simples de la clase
public void setSuperficie(double valorSuperficie){superficie = valorSuperficie;}
public void setDireccion(String valorDireccion){direccion = valorDireccion;}
//setters para atributos simples dentro de atributos objetos que a su ves son campos de un objeto tipo Casa
public void setNumeroDeFuegos(int valorNumeroDeFuegos){laCocinaCasa.setNumeroDeFuegos (valorNumeroDeFuegos);}
public void setEsIndependiente(boolean valorEsIndependiente){laCocinaCasa.setEsIndependiente(valorEsIndependiente);}
public void setNumeroDeTelevisores(int valorNumeroDeTelevisores){miSalonCasa.setNumeroDeTelevisores(valorNumeroDeTelevisores);}
public void setTipoSalon(String valorTipoSalon){miSalonCasa.setTipoSalon(valorTipoSalon);}
}
Tengo la duda de si tendría que declarar como private los atributos de las clases: CocinaCasa y SalonCasa al igual que en la clase Casa. Saludos!
-
Los atributos de todas las clases deben ser private, excepto casos excepcionales. Es decir, en las clases CocinaCasa y SalonCasa debes poner los atributos como private.
Salud
-
Los atributos de todas las clases deben ser private, excepto casos excepcionales. Es decir, en las clases CocinaCasa y SalonCasa debes poner los atributos como private.
Salud
En otras clases no e indicado la condición public o private para ningún atributo, quisiera saber si al no indicar ninguna de estas condiciones los atributos quedan por defecto private
y aparte de esto, como trabaja mi codigo? esta bien o mal? con relación a los ejercicios
Salu2!
-
El código está bien aunque sería recomendable que mejores dos cosas:
- Especificar los atributos como private. Si los dejas sin especificar Java lo admite, pero no equivale ni a public ni a private, sino es un estado intermedio entre public y private. Aquí está explicado qué ocurre si se dejan sin indicar public ni private: http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=665:public-private-y-protected-javatipos-de-modificadores-de-acceso-visibilidad-en-clases-subclases-cu00693b&catid=68:curso-aprender-programacion-java-desde-cero&Itemid=188
- Añadir los métodos getters. Aunque el ejercicio no los pida es recomendable incluirlos.
Saludos