Autor Tema: Revision ejercicio CU00642B objetos que usan objetos como atributos java  (Leído 3828 veces)

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Buenas Tardes me he estado dedicando a entender y desglosar como hacer este programa, se que hay dos maneras de hacer el constructor cuando intentamos llamar a los objetos como atributos, ya sea declarandolo dentro de los parametros o fuera de el.
pero no he logrado que me funcione podrian decirme cuales son mis errores porque creo ya me encasille.dejo los tres programas.

Gracias

Código: [Seleccionar]
//Programa CocinaCasa
//Hecho por Osvaldo Maciel Julio 19 2014

public class CocinaCasa{
   
    boolean esIndependiente;
    int numeroDeFuegos;
   
    //constructor es donde inicializo mis atributos y es lo que quiero que aparezca como campo en mis opbjetos
   
    public CocinaCasa(){
       
        esIndependiente=false;
        numeroDeFuegos=0;
    }//cierre constructor
     //Metodos Setters
     public void  setEsIndependiente(boolean ValorEsIndependiente){
     
     esIndependiente=ValorEsIndependiente;
    }//cierre metodo
   
     public void  setNumeroDeFuegos(int ValorNumeroDeFuegos){
     
     numeroDeFuegos=ValorNumeroDeFuegos;
    }//cierre metodo
   
   
    //Metodos Getters
     public int getNumeroDeFuegos(){return numeroDeFuegos;}
     public boolean getEsIndependiente(){ return esIndependiente;}
}//cierre clase



Código: [Seleccionar]
//Programa Salon Casa
//Hecho por Osvaldo Maciel Julio 19 2014


public class SalonCasa{
    int numDeTelevisores;
    String tipoSalon;
   
    //constructor
    public SalonCasa(){
        numDeTelevisores=0;
        tipoSalon="desconocido";
    }//cierre constructor
   
   
    //Metodos Setter
    public void setNumeroDeTelevisores(int ValorNumeroDeTelevisores){
        numDeTelevisores=ValorNumeroDeTelevisores;
    }//cierre Metodo
   
     public void setTipoSalon (String ValorTipoSalon){
        tipoSalon=ValorTipoSalon;
    }//cierre Metodo
   
    //metodo Getter
    public int getNumeroDeTelevisores(){return  numDeTelevisores;}
    public String getTipoSalon(){return  tipoSalon;}
}//cierre clase





Código: [Seleccionar]
//Programa Casa
//Hecho por Osvaldo Maciel Julio 19 2014

public class Casa{
    //Atributos
   private double  superficie;
   private String direccion ;
   //sintaxis private - Nombre de la clase que vamos a llamar - nombre del objeto referencia(que tiene que ver con la clase que estamos mandando llamar)
   private SalonCasa objetosalonCasa;
   private CocinaCasa objetoCocina;
   
   
   
   // Constructor 1 establecemos los valores por defecto de los atributos simples (inicializamos)
   //y creamos nuevos objetos en caso de ser atributos objeto
   public Casa(){
   
    //Atributos simples
    superficie=0;
    direccion="desconocido";
   
   //estos Son Atributos Objetos, con esta declaracion vamos a crear nuevos objetos
   //sintaxis nombre del objeto referencia
    objetosalonCasa= new SalonCasa();
    // estoy creando un nuevo objeto SalonCasa
    objetoCocina= new CocinaCasa();
}//cierre Constructor


//Constructor 2, sirve como metodo getter ya que recibe datos como parametro


public Casa(double superficie, String direccion,SalonCasa esteObjetoSalonCasa, CocinaCasa esteObjetoCocinaCasa ){
    //sintaxis public - Nombre del constructor(parametros simples y parametros tipo objetos)
    //los parametros simples se declaran como (tipo- nombre)
    //los parametros tipo objeto se declaran (clase donde esta el objeto que necesitamos- nombre que le damos en este momento al objeto)
    //se declaran en este constructor variables simples y de tipo objeto como parametros
    //Las Variables simples quearan fijas cuando sean requeridas en el objeto pero las de objeto se necesitan crear los objetos

       
                           //Creacion de los objetos en un Constructor2
     
        objetosalonCasa=new SalonCasa(esteObjetoSalonCasa.getNumeroDeTelevisores(), esteObjetoSalonCasa.getTipoSalon());
       
        objetoCocina=new CocinaCasa(esteObjetoCocinaCasa.getEsIndependiente(),esteObjetoCocinaCasa.getNumeroDeFuegos());
   
    }//cierre Constructor2
                           
               
   
   
}//Cierre Clase
« Última modificación: 31 de Agosto 2014, 18:49 por Alex Rodríguez »

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Revision ejercicio CU00642B
« Respuesta #1 en: 23 de Julio 2014, 18:27 »
Hola, si quieres poner un constructor que reciba parámetro hay varias formas de hacerlo, pero la más simple sería esta:

Código: [Seleccionar]
//Programa Casa
//Hecho por Osvaldo Maciel Julio 19 2014

public class Casa{
    //Atributos
   private double  superficie;
   private String direccion ;
   //sintaxis private - Nombre de la clase que vamos a llamar - nombre del objeto referencia(que tiene que ver con la clase que estamos mandando llamar)
   private SalonCasa objetosalonCasa;
   private CocinaCasa objetoCocina;
   
   
   
   // Constructor 1 establecemos los valores por defecto de los atributos simples (inicializamos)
   //y creamos nuevos objetos en caso de ser atributos objeto
   public Casa(){
   
    //Atributos simples
    superficie=0;
    direccion="desconocido";
   
   //estos Son Atributos Objetos, con esta declaracion vamos a crear nuevos objetos
   //sintaxis nombre del objeto referencia
    objetosalonCasa= new SalonCasa();
    // estoy creando un nuevo objeto SalonCasa
    objetoCocina= new CocinaCasa();
}//cierre Constructor


//Constructor 2, sirve como metodo getter ya que recibe datos como parametro


public Casa(double valorSuperficie, String valorDireccion,SalonCasa esteObjetoSalonCasa, CocinaCasa esteObjetoCocinaCasa ){
    //sintaxis public - Nombre del constructor(parametros simples y parametros tipo objetos)
    //los parametros simples se declaran como (tipo- nombre)
    //los parametros tipo objeto se declaran (clase donde esta el objeto que necesitamos- nombre que le damos en este momento al objeto)
    //se declaran en este constructor variables simples y de tipo objeto como parametros
    //Las Variables simples quearan fijas cuando sean requeridas en el objeto pero las de objeto se necesitan crear los objetos

       
                           //Creacion de los objetos en un Constructor2
     
  superficie =   valorSuperficie;
  valorDireccion= valorDireccion;
  objetosalonCasa = esteObjetoSalonCasa;
  objetoCocina = esteObjetoCocinaCasa;
    }//cierre Constructor2
                           
               
   
   
}//Cierre Clase

Saludos
Responsable de departamento de producción aprenderaprogramar.com

Zikem10

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 26
    • Ver Perfil
Re:Revision ejercicio CU00642B
« Respuesta #2 en: 24 de Julio 2014, 00:29 »
Gracias, creo que es la forma mas clara y menos confusa,solo hay que tener en cuenta que al momento de pedirlo como parametro hay que llamar a la Clae correspondiente , definir alli una variable ValorLocal y despues solo igualarla a la variable Referencia que declaramos previamente.

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Revision ejercicio CU00642B
« Respuesta #3 en: 24 de Julio 2014, 01:00 »
Para recibir un objeto como parámetro de un constructor, el objeto tendría que haber sido creado previamente (o crearse al invocar el constructor). Eso es lo único necesario. Saludos.
Responsable de departamento de producción aprenderaprogramar.com

 

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