Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jorge1290 en 29 de Julio 2014, 04:06
-
Hola!
aquí de nuevo dejando el ejercicio, espero haber hecho lo que decia en el ejercicio, si me falto algo espero y me puedan ayudar.
no introduje los métodos Set y Get porque no los pedía en el ejercicio, al parecer el ejercicio solo quería que nos familiarizamos con el llamar atributos de otra clase (relacionar una clase con otras), saludos!.
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. Compila el código para comprobar que no presenta errores, crea un objeto de tipo Casa.
codigo de la Clase SalonCasa:
public class SalonCasa {
int numeroDeTelevisores;
String tipoSalon;
//constructor
public SalonCasa (){
numeroDeTelevisores = 0;
tipoSalon = "Desconocido";
}
}
Codigo de la Clase CocinaCasa:
public class CocinaCasa {
boolean esIndependiente;
int numeroDeFuegos;
//conductor
public CocinaCasa (){
esIndependiente = false;
numeroDeFuegos = 0;
}
}
Codigo de la clase Casa:
public class Casa {
double superficie;
String direccion;
private SalonCasa tipoSalonCasa;
private CocinaCasa tipoCocinaCasa;
//constructor
public Casa () {
superficie = 0;
direccion ="";
tipoSalonCasa = new SalonCasa ();
tipoCocinaCasa = new CocinaCasa ();
}
}
-
Hola, los métodos get y set normalmente conviene que los introduzcas, aunque no lo pida el ejercicio explícitamente.
Te recomiendo que repitas el ejercicio teniendo en cuenta:
* Introducir los métodos get y set, ya que te será útil para practicar.
* Te ha faltado lo siguiente que dice el enunciado, tendrías que introducirlo: "Define otro constructor que reciba como parámetros la superficie, dirección y un objeto de tipo SalonCasa y otro de tipo CocinaCasa." Si no haces esto no puedes completar lo demás que pide el ejercicio.
Saludos :D
-
muchas gracias por el consejo mastermind,
tengo una duda con lo que me falto de realizar en el codigo, lo que pasa es que no entendi muy bien el como poner un objeto como parametro en un metodo
no entiendo muy bien esta parte del codigo:
//Constructor
public TaxiCond (Taxi objetoTaxi, Persona objetoPersona) {
//Creamos un objeto Taxi con los mismos datos del Taxi recibido como parámetro
vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(), objetoTaxi.getTipoMotor() );
//Creamos un objeto Persona con los mismos datos de la Persona recibidos como parámetro
conductorTaxi = new Persona (objetoPersona.getNombre() ); }
nose de donde sale "vehiculoTaxi" y el porque poner objetoTaxi, se que tal vez es algo simple, pero me enrrede un poco aqui, de antemano muchas gracias por su ayuda, saludos.
-
Hola, vehiculoTaxi es un atributo (campo) de la clase, y en el constructor debemos inicializarlo.
El constructor más básico sería:
public TaxiCond () {
vehiculoTaxi = new Taxi ( );
conductorTaxi = new Persona ( ); }
Aquí simplemente estamos inicializando, pero los atributos no tendrán información (sólo la información de defecto)
Como alternativa tendríamos:
public TaxiCond (Taxi objetoTaxi, Persona objetoPersona) {
vehiculoTaxi = objetoTaxi;
conductorTaxi = objetoPersona; }
En este caso no estamos creando nuevos objetos, sino que hacemos que los objetos que se reciben como parámetros pasen a ser los atributos de la clase. Los objetos objetoTaxi y objetoPersona tendrán que haber sido creados previamente (si no es así, no podrían ser recibidos como parámetros). En este caso, si modificas el objeto recibido, se modificará el atributo. Y si modificas el atributo, se modificará el objeto recibido.
Finalmente esta alternativa:
public TaxiCond (Taxi objetoTaxi, Persona objetoPersona) {
//Creamos un objeto Taxi con los mismos datos del Taxi recibido como parámetro
vehiculoTaxi = new Taxi (objetoTaxi.getMatricula(), objetoTaxi.getDistrito(), objetoTaxi.getTipoMotor() );
//Creamos un objeto Persona con los mismos datos de la Persona recibidos como parámetro
conductorTaxi = new Persona (objetoPersona.getNombre() ); }
Recibes un objeto como parámetro y creas otro nuevo y distinto, para que sea el atributo, pero al crearlo le pasas como parámetros al constructor los valores que trae el objeto parámetro. El resultado es que tienes un objeto nuevo pero con la misma información que traía el objeto que se pasó por parámetro.