Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ronal.d87 en 10 de Agosto 2015, 06:48
-
Hola a todos, he aqui el desarrollo del ejercicio.
clase TipoPiedra
package ejemplo;
/**
* @author Ronald Mosquera
*/
//clase tipo enum
public enum TipoPiedra {
CALIZA ("Caliza",1200),
MARMOL ("Marmol", (float) 1423.55),
PIZARRA ("Pizarra",1325),
CUARZITA ("Cuarzita",(float) 1466.22);
private final String piedra ;
private final float peso;
//metodo constructor
TipoPiedra(String piedra, float peso){
this.piedra=piedra;
this.peso=peso;
}
public String getPiedra(){
return piedra;
}
public float getPeso(){
return peso;
}
}
clase TestPiedra
package ejemplo;
/**
* @author Ronald Mosquera
*/
public class TestPiedra {
public static void main(String [] args){
TipoPiedra tipoPiedra = TipoPiedra.CALIZA;
System.out.println ("La piedra elegida por el usuario es " + tipoPiedra.getPiedra()
+ "\ncon un peso especifico ");
for (TipoPiedra tpiedra: TipoPiedra.values() ) {
System.out.println ("La piedra "+tpiedra.toString() + " el palet pesa "+tpiedra.getPeso() +" kg");
}
}
}
-
Hola Ronald:
Estuve revisando tu ejercicio y está bien, pero tendríamos que revisar algunas cosas.
Respecto de la clase TipoPiedra:
No es necesario declarar un campo nombre, ya que podemos utilizar el objeto mismo cuando se requiera representar el nombre de las distintas piedras. Esto se hace utilizando el método toString() sobre el objeto tipo TipoPiedra.
Por otro lado, el campo peso que declaras sería mejor bautizarlo como pesoEspecifico ya que es lo que representa. Además al momento de asignarle su valor puedes utilizar la letra 'f' como sufijo del número para indicar al compilador que se trata de un tipo float y no de un tipo double.
package ejemplo;
/**
* @author Ronald Mosquera
*/
//clase tipo enum
public enum TipoPiedra {
CALIZA (1200f),
MARMOL (1423.55f),
PIZARRA (1325f),
CUARZITA (1466.22f);
private final float pesoEspecifico;
//metodo constructor
TipoPiedra(float pesoEspecifico){
this.pesoEspecifico=pesoEspecifico;
}
public float getPesoEspecifico(){
return pesoEspecifico;
}
}
Respecto de la clase TestPiedra:
Aquí utilizamos el método toString() sobre el objeto tipo TipoPiedra para imprimir por consola el nombre de la piedra (como lo indicábamos anteriormente).
Fíjate que también habría que hacer una pequeña operación matemática de multiplicación para saber cuánto pesan los distintos palet.
package ejemplo;
/**
* @author Ronald Mosquera
*/
public class TestPiedra {
public static void main(String [] args){
TipoPiedra tipoPiedra = TipoPiedra.CALIZA;
System.out.println ("\fLa piedra elegida por el usuario es " + tipoPiedra.toString()
+ "\ncon un peso especifico de " + tipoPiedra.getPesoEspecifico() +" kg/m3" + "\n");
for (TipoPiedra tpiedra: TipoPiedra.values() ) {
System.out.println ("Un palet de piedra " + tpiedra.toString() + " pesa " + 2.27*tpiedra.getPesoEspecifico() +" kg");
}
}
}
Analízalo y cualquier duda lo seguimos analizando.