Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Java_Maya14 en 08 de Julio 2014, 10:18

Título: Ejercicio (CU00641B) Clases usan objetos java Revision
Publicado por: Java_Maya14 en 08 de Julio 2014, 10:18
Hola que tal dejo El código para el ejercicio..
Clase SalonCasa:
Código: [Seleccionar]
/** Ejercicio 18: Casa - (Clases que utilizan objetos).
 * Alumno: Cristian Alberto balam martinez
 * 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.
 *Inicio del codigo:
 */
public class SalonCasa {
    int NumeroDeTelevisores;
    String TipoSalon ;
    //Inicio del Constructor:
    public SalonCasa () {
        NumeroDeTelevisores = 0;
        TipoSalon = "Desconocido";
    }//Cierre del constructor
    //Setters
    public void setTipoSalon (String valorTipoSalon) {
        TipoSalon = valorTipoSalon;
        System.out.println ("El Tipo de salon es: "+TipoSalon);
    }

    public void settNumeroDeTelevisores (int valorNumeroDeTelevisores) {
        NumeroDeTelevisores = valorNumeroDeTelevisores;
        System.out.println ("El Salon "+TipoSalon+" Tiene: "+NumeroDeTelevisores+" Televisores");
    }
    //Getters
    public String getTipoSalon () { return TipoSalon; }//Cierre del metodo

    public int getNumeroDeTelevisores () { return NumeroDeTelevisores; }//Cierre del metodo
}//Cierre de la clase
/**
 * El codigo Finaliza... Sin errores de sintaxis.
 */
Clase CocinaCasa:
Código: [Seleccionar]
/** Ejercicio 18: Casa - (Clases que utilizan objetos).
 * Alumno: Cristian Alberto balam martinez
 * 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.
 *Inicio del codigo:
 */
public class CocinaCasa {
    boolean EsIndependiente;
    int NumeroDeFuegos;
    //Inicio del constructor:
    public CocinaCasa () {
        EsIndependiente = false;
        NumeroDeFuegos = 0;
    }
    //Setters
    public void setEsIndependiente (boolean valorEsIndependiente) {
        EsIndependiente = valorEsIndependiente;
        System.out.println ("La cocina es independiente: "+EsIndependiente);
    }
   
    public void setNumeroDeFuegos (int valorNumeroDeFuegos) {
        NumeroDeFuegos = valorNumeroDeFuegos;
        System.out.println ("La cocina Tiene "+NumeroDeFuegos+" Fuegos");
    }
    //Getters
    public boolean getEsIndependiente () { return EsIndependiente; }//Cierre del metodo
   
    public int getNumeroDeFuegos () { return NumeroDeFuegos; }//Cierre del metodo
}//Cierre de la clase
/**
 * El codigo finaliza..... sin errores de sintaxis...
 */
       
Clase Casa:
Código: [Seleccionar]
/** Ejercicio 18: Casa - (Clases que utilizan objetos).
 * Alumno: Cristian Alberto balam martinez
 * 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.
 *Inicio del codigo:
 */
public class Casa {
    double Superficie;
    String Direccion;
    private SalonCasa TipoSalonCasa;
    private CocinaCasa TipoCocinaCasa;
    //Inicio del constructor:
    public Casa () {
        Superficie = 0.00;
        Direccion = "Desconocido";
        TipoSalonCasa = new SalonCasa ();
        TipoCocinaCasa = new CocinaCasa ();
    }//Cierre del constructor
    //Setters
    public void setSuperficie (double valorSuperficie) {
        Superficie = valorSuperficie;
        System.out.println ("La Superficie es de: "+Superficie+" m2");
    }
    public void setDireccion (String valorDireccion) {
        Direccion = valorDireccion;
        System.out.println ("La direccion de la Casa es: "+Direccion+ "La Superficie de la casa es: "+Superficie);
    }
   
    public void setTipoSalon (String valorTipoSalon) { TipoSalonCasa.setTipoSalon(valorTipoSalon); }
   
    public void setEsIndependiente (boolean valorEsIndependiente) { TipoCocinaCasa.setEsIndependiente(valorEsIndependiente); }
    //Getters
    public String getDatosCasa () {
        String TipoSalon = TipoSalonCasa.getTipoSalon();
        int NumeroDeTelevisores = TipoSalonCasa.getNumeroDeTelevisores();
        boolean EsIndependiente = TipoCocinaCasa.getEsIndependiente();
        int NumeroDeFuegos = TipoCocinaCasa.getNumeroDeFuegos();
        String DatosCasa = "El objeto Casa Presenta Estos datos, Tipo de salon: "+TipoSalon+
        ", Numero De televisores: "+NumeroDeTelevisores+
       
        ", Y el Tipo de cocina, ¿Es independiente?: "
        +EsIndependiente+", El numero de fuegos es: "+NumeroDeFuegos;
       
        System.out.println (DatosCasa);
       
        return DatosCasa;
    }
}

       
Espero que este bien.. Gracias por estar al pendiente y ayudarnos..
Título: Re:Ejercicio (CU00641B) Clases usan objetos Revision porfa
Publicado por: javi in the sky en 08 de Julio 2014, 14:06
Hola, revisando el código te digo las cosas mejorables:

- Los nombres de atributos deben empezar con minúsculas, por ejemplo en vez de NumeroDeTelevisores que sea numeroDeTelevisores

- Los métodos set y get no deben incluir sentencias System.out.println (puedes ponérselas para comprobar que se ejecutan, pero en un código definitivo deberías quitarlas).

- Nombres de atributo como TipoSalonCasa no son adecuados porque son confusos. Mejor sería salonDeLaCasa ó salonDeEstaCasa o simplemente salonCasa (empezando con minúsculas siempre).

- Dentro de la clase Casa no deben existir métodos set de otras clases. Por ejemplo dentro de la clase Casa no debe estar public void setTipoSalon, cada clase tiene sus métodos get y set, y otras clases no deben entrar a definir esos métodos.

- Dentro de la clase Casa te faltan los métodos get. Deberías tener estos métodos:

getSuperficie (devolverá un double)

getDirecion (devolverá un String)

get TipoSalonCasa o mejor simplemente getSalonCasa (devolverá un objeto SalonCasa)

get TipoCocinaCasa o mejor simplemente getCocinaCasa (devolverá un objeto CocinaCasa)

Ten en cuenta que un método puede devolver un objeto completo, no hay nada que lo prohiba.


- En la clase casa podrías tener métodos setSalonCasa y set cocinaCasa que reciban un objeto y modifiquen el atributo correspondiente para que pase a ser el objeto recibido.

Título: Re:Ejercicio (CU00641B) Clases usan objetos Revision porfa
Publicado por: Java_Maya14 en 12 de Julio 2014, 04:03
Hola que tal muchas gracias por su tiempo en responder corregire el codigo gracias.
Título: Re:Ejercicio (CU00641B) Clases usan objetos Revision porfa
Publicado por: yami_jlo en 21 de Julio 2014, 15:31
Hola,
Yo en mi código, en la clase Casa solo coloqué los métodos get y set de los atributos de esa clase y los objetos simplemente los instancié... está bien así? o causará conflicto después? (uso Netbeans)
Código: [Seleccionar]
public class Casa {

    double v_superficie;
    String v_direccion;
    SalonCasa v_salonCasa;
    CocinaCasa v_cocina;

    public Casa() {
        v_superficie = 0.0;
        v_direccion = "San Antonio";
        v_salonCasa = new SalonCasa();
        v_cocina = new CocinaCasa();


    }

    public void setSuperficie(double vSuperficie) {
        v_superficie = vSuperficie;
    }

    public void setDireccion(String vDireccion) {
        v_direccion = vDireccion;
    }
   
    public double getSuperficie() {
        return v_superficie;
    }

    public String getDireccion() {
        return v_direccion;
    }

    public static void main(String[] args) {
        Casa obj = new Casa();
        System.out.println("Superficie: "+obj.getSuperficie());
        System.out.println("Direccion: "+obj.getDireccion());
        System.out.println("Salon: "+ obj.v_salonCasa.getSalon());
        System.out.println("Televisores: "+ obj.v_salonCasa.getTelevisores());
        System.out.println("Fuegos: "+ obj.v_cocina.getFuegos());
        System.out.println( "Independiente: " + obj.v_cocina.getIndependiente());   

    }
}



Código: [Seleccionar]
public class SalonCasa {
    int v_numeroDeTelevisores;
    String v_tipoSalon;
   
   
    public SalonCasa (){
    v_numeroDeTelevisores=0;
    v_tipoSalon= "desconocido";
   
    }
   
    public void setTelevisores (int vTelevisores){ v_numeroDeTelevisores= vTelevisores;}
    public void setSalon (String vSalon){ v_tipoSalon= vSalon;}
   
    public int getTelevisores () {return v_numeroDeTelevisores;}
    public String getSalon (){ return v_tipoSalon;}
   
}

Código: [Seleccionar]
public class CocinaCasa {
   
    boolean v_esIndependiente;
    int v_numeroDeFuegos;
   
   
    public CocinaCasa(){
    v_esIndependiente=false;
    v_numeroDeFuegos=0;
    }   
   
    public void setIndependiente (boolean vIndependiente){ v_esIndependiente= vIndependiente;}
    public void setFuegos (int vFuego){ v_numeroDeFuegos= vFuego;}
   
    public boolean getIndependiente () {return v_esIndependiente;}
    public int getFuegos (){ return v_numeroDeFuegos;}
   
   
   
}
Título: Re:Ejercicio (CU00641B) Clases usan objetos Revision porfa
Publicado por: Alex Rodríguez en 21 de Julio 2014, 17:44
Hola, son atributos de clase tanto los tipos primitivos como los objetos. Y normalmente se establecen métodos get y set tanto para los tipos primitivos como para los objetos. En el caso de trabajar con objetos, los set reciben un objeto e igualan el atributo al objeto recibido. En el caso de los get, devuelven un objeto (el atributo).

Hay distitas variantes pero la idea general es esta, y esto sería lo que le falta a tu código.

Saludos.