Autor Tema: ejercicio (CU00642B) atributos objetos java  (Leído 4692 veces)

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
ejercicio (CU00642B) atributos objetos java
« 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:

Código: [Seleccionar]
public class SalonCasa {

int numeroDeTelevisores;
String tipoSalon;

//constructor

public SalonCasa (){

    numeroDeTelevisores = 0;
    tipoSalon = "Desconocido";

}
}


Codigo de la Clase CocinaCasa:

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

//conductor
public CocinaCasa (){
esIndependiente = false;
numeroDeFuegos = 0;
}
}


Codigo de la clase Casa:

Código: [Seleccionar]
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 ();
}
}
« Última modificación: 31 de Agosto 2014, 11:13 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:ejercicio (CU00642B) Revision
« Respuesta #1 en: 29 de Julio 2014, 13:52 »
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

jorge1290

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 22
    • Ver Perfil
Re:ejercicio (CU00642B) Revision
« Respuesta #2 en: 30 de Julio 2014, 22:00 »
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:

Código: [Seleccionar]
//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.

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:ejercicio (CU00642B) Revision
« Respuesta #3 en: 31 de Julio 2014, 10:22 »
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.




 

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