Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Zikem10 en 22 de Julio 2014, 23:38

Título: Revision ejercicio CU00642B objetos que usan objetos como atributos java
Publicado por: Zikem10 en 22 de Julio 2014, 23:38
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
Título: Re:Revision ejercicio CU00642B
Publicado por: César Krall 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
Título: Re:Revision ejercicio CU00642B
Publicado por: Zikem10 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.
Título: Re:Revision ejercicio CU00642B
Publicado por: César Krall 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.