Autor Tema: Paso de objetos como parámetros a un método o constructor Java CU00642B  (Leído 2985 veces)

Jesu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 42
    • Ver Perfil
Ejercicio CU00642B del curso de bases de la programación Java.

Código: [Seleccionar]
package Ejercicios_POO;

public class SalonCasa  // Nombre de la clase
   {
     
// Campos de la clase
private int numTelevisores;
private String tipoSalon;

    // Métodos
    public SalonCasa()
    {
    numTelevisores=0;
    tipoSalon="Desconocido";
   
    }
    public SalonCasa(int numTelevisores,String tipoSalon)
    {
    this.numTelevisores=numTelevisores;
    this.tipoSalon=tipoSalon;
    }

public int getNumTelevisores() {
return numTelevisores;
}

public void setNumTelevisores(int numTelevisores) {
this.numTelevisores = numTelevisores;
}

public String getTipoSalon() {
return tipoSalon;
}

public void setTipoSalon(String tipoSalon) {
this.tipoSalon = tipoSalon;
}
public static void main(String[]arg){
SalonCasa saloncasa1=new SalonCasa();

saloncasa1.setNumTelevisores(1);
saloncasa1.setTipoSalon("VIP");

saloncasa1.getNumTelevisores();
saloncasa1.getTipoSalon();
}
       
     
   }

Código: [Seleccionar]
package Ejercicios_POO;

public class CocinaCasa
   {
public static void main(String[]args)
{
CocinaCasa cocinacasa1=new CocinaCasa();
cocinacasa1.setNumFuegos(4);
cocinacasa1.setEsIndependiente(true);
cocinacasa1.getNumFuegos();
cocinacasa1.getEsIndependiente();
}
       
   private boolean esIndependiente;
   private int numFuegos;
   
     
     public CocinaCasa()
     {
    esIndependiente=false;
    numFuegos=0;
     }
     public CocinaCasa(boolean esIndependiente,int numFuegos)
     {
    this.esIndependiente=esIndependiente;
    this.numFuegos=numFuegos;
     }


public boolean getEsIndependiente() {
return esIndependiente;
}


public void setEsIndependiente(boolean esIndependiente) {
this.esIndependiente = esIndependiente;
}


public int getNumFuegos() {
return numFuegos;
}


public void setNumFuegos(int numFuegos) {
this.numFuegos = numFuegos;
}
     
     

   }


Código: [Seleccionar]
package Ejercicios_POO;

public class Casa // Clase casa
   {   
     
private double superficie;
private String direccion;
private SalonCasa saloncasa;  // Atributo de objeto
private CocinaCasa cocinacasa;  // Atributo de objeto
   
/*Creación del constructor casa. Para las variables de tipo objeto llamamos a los constructores
  de las clase SalonCasa y CocinaCasa   
*/

public Casa()
   {
   superficie=0;
   direccion="Desconocido";
   saloncasa=new SalonCasa();
   cocinacasa=new CocinaCasa();
   }
// Segundo Constructor.
public Casa(double superficie, String direccion,SalonCasa saloncasa1,CocinaCasa cocinacasa1)
{
this.superficie=superficie;
this.direccion=direccion;
saloncasa=new SalonCasa(saloncasa1.getNumTelevisores(),saloncasa1.getTipoSalon());
cocinacasa=new CocinaCasa(cocinacasa1.getEsIndependiente(),cocinacasa1.getNumFuegos());
}
   
     // Método setter
   public void setNumTelevisores(int numTelevisores)
   {
   saloncasa.setNumTelevisores(numTelevisores);
   }
   
   public String getDatosCasa()
   {
String tipoSalon=saloncasa.getTipoSalon();
int numTelevisores=saloncasa.getNumTelevisores();

String cadena="La casa tiene un salon "+tipoSalon+" y tiene "+numTelevisores+" televisores.";

return cadena;
   }
   
   
public static void main(String[] args) {
// TODO Auto-generated method stub
           
Casa casa1=new Casa();

        System.out.println(casa1.getDatosCasa());
}

}


Gracias, Espero sus observaciones.
« Última modificación: 12 de Marzo 2017, 21:20 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:PASO DE OBJETOS COMO PARÁMETROS A UN MÉTODO O CONSTRUCTOR JAVA. 642B
« Respuesta #1 en: 12 de Marzo 2017, 21:18 »
Hola Jesu, es importante que sigas las indicaciones que se dan en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

- No escribas el título de los temas en mayúsculas
- Escribe el código de los ejercicios completo, en lugar de 642B lo correcto es CU00642B
- Revisa lo escrito pulsando previsualizar antes de publicar (así evitas que quede mal lo publicado)

En el ejercicio tienes cosas que mejorar:

En la clase Casa no debes tener un método setNumTelevisores porque numTelevisores no es un atributo de esta clase, por tanto no debe existir un set si no es atributo de la clase.

En este momento del curso no se pide usar un método main, de hecho se recomienda no usarlo, ya que lo que se recomienda es ir siguiendo el curso paso a paso.

Revisa este hilo donde hay varias indicaciones de interés sobre este ejercicio: https://www.aprenderaprogramar.com/foros/index.php?topic=1238.0

Saludos
« Última modificación: 18 de Junio 2017, 12:15 por Alex Rodríguez »

david82

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 10
    • Ver Perfil
No tengo demasiado claro el concepto de pasar objetos en constructores, así que aquí está mi código. leo sugerencias. Gracias :D,

Código: [Seleccionar]
public class SalonCasa {

protected int numeroDeTelevisores;
protected String tipoSalon;

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

public SalonCasa(int numeroTelevisores, String tipoSalon) {
// Constructor que recibe como parametro el numero de tvs
this.numeroDeTelevisores =numeroTelevisores;
this.tipoSalon = tipoSalon;
}
//getters

public int getNumeroTelevisores(){
return numeroDeTelevisores;
}

public String getTipoSalon(){
return tipoSalon;
}

//setters

public void setNumeroTelevisores(int numtv){
numeroDeTelevisores = numtv;
}

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

Código: [Seleccionar]
public class CocinaCasa {

protected int numeroDeFuegos;
protected boolean esIndependiente;

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

public CocinaCasa(int fuegos, boolean independiente){
numeroDeFuegos = fuegos;
esIndependiente = independiente;
}

//getters

public int getNumeroDeFuegos(){return numeroDeFuegos;}
public boolean getIndependencia(){return esIndependiente;}

//setters

public void setNumeroDeFuegos(int fuegos){
numeroDeFuegos = fuegos;
}

public void setIndependencia(boolean independiente){
esIndependiente = independiente;
}
}

Código: [Seleccionar]
public class Casa {

private double superficie;
private String direccion;
private SalonCasa salonCasa;
private CocinaCasa cocina;

public Casa(){
superficie = 0;
direccion = "desconocido";
salonCasa = new SalonCasa();
cocina = new CocinaCasa();
}

public Casa(double unaSuperficie, String unaDireccion, SalonCasa unSalon, CocinaCasa unaCocinaCasa)
{
superficie=unaSuperficie;
direccion=unaDireccion;
salonCasa=new SalonCasa(unSalon.getNumeroTelevisores(),unSalon.getTipoSalon());
cocina=new CocinaCasa(unaCocinaCasa.getNumeroDeFuegos(),unaCocinaCasa.getIndependencia());
}

public void getInformacion(){

System.out.println(salonCasa.numeroDeTelevisores);
System.out.println(salonCasa.tipoSalon);
System.out.println(cocina.numeroDeFuegos);
System.out.println(cocina.esIndependiente);
System.out.println(superficie);
System.out.println(direccion);
}

public static void main (String[] args){

Casa casa = new Casa();

casa.getInformacion();
}
}

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola david82, para plantear tu respuesta a un ejercicio crea un nuevo tema en los foros, no respondas sobre un tema ya existente. Es conveniente leer las normas sobre cómo publicar en los foros, disponibles en https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Lee estos hilos donde se comenta adecuadamente este ejercicio:

https://www.aprenderaprogramar.com/foros/index.php?topic=1220.0

https://www.aprenderaprogramar.com/foros/index.php?topic=1238.0

Si tienes dudas, consúltalas

Saludos

 

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