Cómo están, muy buenas...
Bueno yo desarrollé el siguiente codigo para la actividad CU00688B del curso de programación Java, como podran notar cree constructores sin atributos, el hecho de crear un objeto en eclipse es algo no tan visual como veo que es en bluej, pero de todas maneras quisiera que me den algun comentario sobre el uso de constructores vacios en herencia como lo desarrolle yo, no se si es una buena o mala practica, el sistema me funciona, pero una cosa es que funcione y otra si estoy usando las buenas practicas de programacion... el codigo es el siguiente:
import java.util.*;
public class Producto {
Calendar fechaEnvasado;
Calendar fechaCaducidad;
int numeroLote;
String paisOrigen;
/*List<Producto> listaComprar =new ArrayList<Producto>();
Producto producto1 = new Producto();*/
//-----------------------------------------------------------------------
//Constructores
public Producto(){
this.fechaEnvasado =Calendar.getInstance();
this.fechaCaducidad =Calendar.getInstance();
this.numeroLote = 0;
this.paisOrigen = "";
System.out.println("Se creo un objeto con valores Predeterminados:"
+ "\nFecha Envasado: "+fechaEnvasado.getTime().toString()+
"\nFecha Caducidad: "+ fechaCaducidad.getTime().toString()+
"\nNumero Lote: "+numeroLote+
"\nPais Origen: "+paisOrigen);}
public Producto(Calendar fechaEnvasado, Calendar fechaCaducidad,
int numeroLote, String paisOrigen) {
super();
this.fechaEnvasado = fechaEnvasado;
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
this.paisOrigen = paisOrigen;
System.out.println("Se creo un objeto con valores:"
+ "\nFecha Envasado: "+fechaEnvasado.getTime().toString()+
"\nFecha Caducidad: "+ fechaCaducidad.getTime().toString()+
"\nNumero Lote: "+numeroLote+
"\nPais Origen: "+paisOrigen);}
//-----------------------------------------------------------------------
//Metodos De Clase
//-----------------------------------------------------------------------
// Metodos Getters
public Calendar getFechaEnvasado() {return fechaEnvasado; }
public Calendar getFechaCaducidad() {return fechaCaducidad; }
public int getNumeroLote() {return numeroLote; }
public String getPaisOrigen() { return paisOrigen; }
// Metodos Setters
public void setFechaEnvasado(Calendar fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado; }
public void setFechaCaducidad(Calendar fechaCaducidad) {
this.fechaCaducidad = fechaCaducidad; }
public void setNumeroLote(int numeroLote) {
this.numeroLote = numeroLote; }
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen; }
}//Cierre De Clase
import java.util.Calendar;
public class ProdFresco extends Producto{
//Constructores
//-----------------------------------------------------------------------------------
public ProdFresco() {
super();
fechaEnvasado=Calendar.getInstance();
paisOrigen="";
System.out.println("Se creo un objeto Productos Fresco con valores predeterminados");
}
public ProdFresco(Calendar fechaEnvasado, Calendar fechaCaducidad,
int numeroLote, String paisOrigen) {
super(fechaEnvasado, fechaCaducidad, numeroLote, paisOrigen);
}
//-----------------------------------------------------------------------------------
public void imprimirObj(){
System.out.println("Tipo: ProdFresco \nFecha caducidad: "+getFechaCaducidad()+
"\nCon Numero de Lote: "+getNumeroLote()+"\nFecha envasado: "+getFechaEnvasado()+
"\nPais De Origen: "+getPaisOrigen());
}
//-----------------------------------------------------------------------------------
}//Cierre de la clase
import java.util.Calendar;
public class ProdEnvasado extends Producto{
int tempRecomendable;
//Constructores
//------------------------------------------------------------------
public ProdEnvasado() {
super();
this.tempRecomendable = 0;
System.out.println("Se creo un objeto Producto Envasado con valores Predeterminados:"+
"\nTemperatura Recomendable: "+tempRecomendable); }
public ProdEnvasado(Calendar fechaEnvasado, Calendar fechaCaducidad,
int numeroLote, String paisOrigen) {
super(fechaEnvasado, fechaCaducidad, numeroLote, paisOrigen);
this.tempRecomendable=0;
System.out.println("Se creo un objeto Producto Envasado con:"
+ "\nTemperatura Recomendable: "+tempRecomendable); }
//------------------------------------------------------------------
//Metodos Getters
public int getTempRecomendable() {return tempRecomendable;}
//Metodos Setters
public void setTempRecomendable(int tempRecomendable) {
this.tempRecomendable = tempRecomendable;}
//------------------------------------------------------------------
}
int temperaturaCRec;
//Constructores
//--------------------------------------------------------------------
public ProdCongelado() {
super();
System.out.println("Se ha creado un producto Congelado");
}
//--------------------------------------------------------------------
//--------------------------------------------------------------------
//Metodos Getters
//Metodos Setters
}//Cierre de clase
public class ProdCongAgua extends ProdCongelado{
double salinidad;
final String valorSalinidad= salinidad+" GramosSal/Litro";
//Constructores
//--------------------------------------------------------------------
public ProdCongAgua() {
super();
this.salinidad = 0.00;
System.out.println("Se creo un objeto Prodcuto Congelado Con Agua con valores Predeterminados"
+valorSalinidad);}
//--------------------------------------------------------------------
//Metodos Getters
public double getSalinidad() {return salinidad;}
//Metodos Setters
public void setSalinidad(double salinidad) {
this.salinidad = salinidad; }
}//Cierre de clase
import java.util.*;
public class CreadorObjs {
//static String[] escogerArr= new String[]{"fresco","refrigerado","congelado"};
public static void main (String[] args){
List<Producto> listaComprar =new ArrayList<Producto>();
Producto producto1 = null;
int[] cantCrear = {2,3,2,2,1};
//--------------------------------------------------------------
//Creador Objetos
for(int i=0;i<cantCrear.length;i++){ //recorrer array
for(int j=1;j<=cantCrear[i];j++){ //bucle creador
switch(i){
case 0:{producto1 = new ProdFresco();break;}//2
case 1:{producto1= new ProdRefrigerado();break;}//3
case 2:{producto1 = new ProdCongAgua();break;}//2
case 3:{producto1 = new ProdCongAire();break;}//2
case 4:{producto1 = new ProdCongNitrogeno();break;}//1
}
listaComprar.add(producto1);
}// Cierre For bucle Creador
} // Cierre For recorrer Array
//--------------------------------------------------------------
//Imprimir
Iterator<Producto> it = listaComprar.iterator();
Producto itprod;
int num=0;
while(it.hasNext()){
itprod=it.next();
num++;
System.out.print(num+" "+itprod+"\t");
}
}//Cierre Clase Main
la clase creador de objetos tiene codigo de otros ejercicios, por ello cuenta con un array.
Muchas gracias por su atencion