Autor Tema: Concepto de polimorfismo y variables polimórficas en Java Eclipse (CU00688B)  (Leído 2259 veces)

diego231192

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 2
    • Ver Perfil
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:

Código: [Seleccionar]
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

Código: [Seleccionar]
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

Código: [Seleccionar]
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;}

//------------------------------------------------------------------

}

Código: [Seleccionar]

int temperaturaCRec;

//Constructores
//--------------------------------------------------------------------

public ProdCongelado() {
super();
System.out.println("Se ha creado un producto Congelado");
}

//--------------------------------------------------------------------


//--------------------------------------------------------------------

//Metodos Getters

//Metodos Setters

}//Cierre de clase

Código: [Seleccionar]
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

Código: [Seleccionar]
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
« Última modificación: 13 de Mayo 2016, 08:42 por César Krall »

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes, diego231192.

Los objetos que creas en "CreadorObjs" no se corresponden con la clase de objetos que tienes en el proyecto. He intentado corregir el ejercicio, pero creo que lo primero que tienes que haces es mirar bien el código y si falta información facilitarla aquí para su corrección.

He visto que has comentado:

Citar
la clase creador de objetos tiene codigo de otros ejercicios, por ello cuenta con un array.

pero sería conveniente que aportes todos los objetos necesarios para facilitar la corrección del ejercicio.

Atentamente,

dimiste.

PD: Para que tengas una guia como resolver el ejercicio de acuerdo con el estilo que lo hacemos en este curso te recomiendo la lectura del hilo:

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

es de un compañero nuestro (pedro,,) y su ejercicio esta calificado como "ejercicio ejemplo".
« Última modificación: 11 de Mayo 2016, 14:26 por dimiste »

 

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