Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado 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
//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
//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
//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
-
Hola, si quieres poner un constructor que reciba parámetro hay varias formas de hacerlo, pero la más simple sería esta:
//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
-
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.
-
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.