Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: rooro_resa en 17 de Mayo 2016, 15:55

Título: Java ejercicio donde intervengan varias clases que utilizan objetos. CU00641B
Publicado por: rooro_resa en 17 de Mayo 2016, 15:55
Hola, mando el ejercicio propuesto para CU00641B de "Clases que utilizan objetos".


Código: [Seleccionar]
public class SalonCasa
{
    private int numeroDeTV;
    private String tipoSalon;

    public SalonCasa (){ //Constructor
        numeroDeTV = 0;
        tipoSalon = "desconocido";
    }

    public void setNumeroDeTelevisores (int valorNumeroDeTV){
        numeroDeTV = valorNumeroDeTV;
    }

    public void setTipoSalon (String valorTipoSalon){
        tipoSalon = valorTipoSalon;
    }

    public int getNumeroDeTV () {return numeroDeTV;}

    public String getTipoSalon () {return tipoSalon;}
}

Código: [Seleccionar]
public class CocinaCasa{

    private boolean esIndependiente;
    private int numeroDeFuegos;

    public CocinaCasa (){

        esIndependiente = false;
        numeroDeFuegos = 0;
    }

    public void setEsIndependiente (boolean valorEsIndependiente){
        esIndependiente = valorEsIndependiente;
    }

    public void setNumeroDeFuegos (int valorNumeroDeFuegos){

        numeroDeFuegos = valorNumeroDeFuegos;
    }
    public boolean getEsIndependiente() {return esIndependiente;}
    public int getNumeroDeFuegos() {return numeroDeFuegos;}

}

Código: [Seleccionar]
public class Casa
{
    private double superficie;
    private String direccion;
    private SalonCasa salonCasa;
    private CocinaCasa cocina;

    public Casa (){

        superficie = 0.0;
        direccion = "";
        salonCasa = new SalonCasa();
        cocina = new CocinaCasa();

    }

    public void setSuperficie(int valorSuperficie){
        superficie = valorSuperficie;
    }

    public void setDireccion(String valorDireccion){
        direccion = valorDireccion;
    }

    public void setSalonCasa(SalonCasa valorSalon){

        salonCasa = new SalonCasa();

    }

    public void setCocina(CocinaCasa valorCocina){
        cocina = new CocinaCasa();
    }

    public double getSuperficie (){return superficie;}

    public String getDireccion () {return direccion;}

    public SalonCasa getSalonCasa (){return salonCasa;}

    public CocinaCasa getCocina () {return cocina;}

}

Los getters y setters no e piden en el enunciado pero intuyo que se tienen que poner para modificar los valores de los atributos.
Cuando creamos el objeto casa si en
Código: [Seleccionar]
void setSalonCasa(SalonCasa valorSalon)queremos modificar no lo podemos modificar aunque nos aparezca
Código: [Seleccionar]
casa1.setSalonCasa(           )porqué no es un valor concreto verdad?
Título: Re:Clases que utilizan objetos. CU00641B
Publicado por: Dimitar Stefanov en 18 de Mayo 2016, 10:14
Buenas rooro_resa.

El ejercicio perfecto. Sólo comentarme que también puedes establecer los métodos: "setSalonCasa()" y "setCocina()" así:

Código: [Seleccionar]
ublic void setSalonCasa(SalonCasa valorSalon){

        salonCasa = valorSalon;

    }

Código: [Seleccionar]
public void setCocina(CocinaCasa valorCocina){
        cocina = valorCocina;
    }

La respuesta a tu pregunta la tienes aquí:

https://www.aprenderaprogramar.com/foros/index.php?topic=1220.msg6718#msg6718 (https://www.aprenderaprogramar.com/foros/index.php?topic=1220.msg6718#msg6718)

que vendría a ser:

Citar
Forma 2 (trabajando con objetos):

Recibir un objeto y crear un nuevo objeto cuyos atributos sean iguales a los del objeto recibido:

Código: [Seleccionar]
public void setSalonCasa (SalonCasa objetoSalon) {
        salonCasa = new SalonCasa();
   salonCasa.setNumeroDeTelevisores(objetoSalon.getNumeroDeTelevisores());
   salonCasa.setTipoSalon(objetoSalon.getTipoSalon());
    }

Saludos :)