Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: diego231192 en 10 de Mayo 2016, 18:16

Título: Concepto de polimorfismo y variables polimórficas en Java Eclipse (CU00688B)
Publicado por: diego231192 en 10 de Mayo 2016, 18:16
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
Título: Re:Concepto de polimorfismo y variables polimórficas en Java. (CU00688B)
Publicado por: Dimitar Stefanov en 11 de Mayo 2016, 14:23
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 (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".