Foros aprenderaprogramar.com
		Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: platinumbazz en 16 de Julio 2015, 01:04
		
			
			- 
				Hola, he creado primero la siguiente clase:
 
 
 public enum TipoDePiedra {
 
 CALIZA(1200),
 MARMOL(1423.55),
 PIZARRA(1325),
 CUARZITA(1466.22);
 
 private final double pesoEspecifico;
 
 TipoDePiedra(double pesoEspecifico){
 
 this.pesoEspecifico=pesoEspecifico;
 
 }
 
 public double getPesoEspecifico() {
 return pesoEspecifico;
 }
 
 }
 
 
 Y despues la he ejecutado para probarla asi:
 
 public class TestClaseEnum {
 public static void main (String[ ] Args) {
 
 System.out.println ("Un palet admite 2.27 m3 de volumen. A continuación el peso de los palets de las distintas piedras:");
 
 
 for(TipoDePiedra tmp: TipoDePiedra.values()){
 System.out.println(tmp.toString()+ " el palet pesa " + (2.27f*(float)tmp.getPesoEspecifico() ) + " kg");
 }
 
 
 
 } //Cierre del main
 } //Cierre de la clase
 Agradecería si alguien pudiera explicarme por qué funciona sin haber declarado ni inicializado el objeto TipoDePiedra como podria ser:
 
  TipoDePiedra mipiedra = TipoDePiedra.MARMOL;
 Gracias
- 
				Hola plantinumbazz
 
 El ejercicio está correcto
 
 En lugar de hacer la conversión a float, si quieres limitar el número de decimales podrías usar un redondeo (ejemplo en www.aprenderaprogramar.com/foros/index.php?topic=991)
 
 Sobre la duda que planteas, creo que se puede responder de la siguiente manera: hay que diferenciar el tipo de dato enumerado TipoDePiedra de una variable cuyo tipo sea el tipo enumerado como podría ser mipiedra.
 
 El tipo enumerado existe desde que lo declaramos, y Java permite recuperar la información relacionada con un tipo enumerado sin necesidad de que exista una instancia de dicho tipo (esto es lo que hacemos en el fragmento
 
        for(TipoDePiedra tmp: TipoDePiedra.values()){
 System.out.println(tmp.toString()+ " el palet pesa " + (2.27f*(float)tmp.getPesoEspecifico() ) + " kg");
 }
 Esto es una particularidad de Java. Podría ocurrir que esto no se permitiera, pero en este lenguaje sí se permite.
 
 Espero haber ayudado a aclarar la duda.
 
 Saludos
- 
				Muchas gracias por la respuesta Mario.
 
 Un saludo