Autor Tema: CU00682B Enumerados como clases Enum en Java. Constructores. Método values  (Leído 3737 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Buenas tardes, aquí dejo mi ejercicio resuelto

Clase Enum TipoPiedra

Código: [Seleccionar]

/**
 * Enumeration class Piedras - Esta clase contiene los tipos de piedra y sus pesos especificos.
 *
 * @author Lorenzo31
 * @version 09-04-2015
 */

public enum TipoPiedra {

    CALIZA (1200f),

    MARMOL (1423.55f),

    PIZARRA (1325f),

    CUARZITA (1466.22f);

    private final float peso;

    TipoPiedra(float valorPeso) { peso = valorPeso; }

    public float getPeso() { return peso; }
   
    /**
     * Funcion que @return un float y calcula el peso de un palet fijandose en el peso unitario
     * y multiplicandolo por 2.27 que se daba por supuesto en el ejercicio anterior, era un palet
     */
    public float getPesoPalet() { return 2.27f * peso; }

}

Clase Main GestorPiedra

Código: [Seleccionar]
/**
 * Clase Main que recorre los tipos de Enumerados declarados en Enum TipoPiedra
 * @Author Lorenzo31
 */

public class GestorPiedra {
   
    public static void main (String [] args){
       
        System.out.println("Iniciamos el programa ");
       
       System.out.println(" TIPO PIEDRA \t PESO M3 \t PESO TOTAL PALET");
       
        for(TipoPiedra tmp: TipoPiedra.values()){
        System.out.println(tmp.toString()  + "\t \t" + tmp.getPeso() + "kg \t \t" + tmp.getPesoPalet() + "kg" );
    }
    }
}

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola Lorenzo, todo está bien así que nada que comentar. Has usado float para datos numéricos decimales. Es más habitual usar double, pero es el programador quien decide si usa float o double según considere más oportuno.

Saludos

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Gracias, tuve una duda al realizar el ejercicio, el caso es que al final cuando printo los datos del for each, el nombre del enum tmp.toString(), se me printaba exactamente igual con tmp solo (solo la variable creada, imagino que java transforma en String por defecto pero prefiero preguntar).

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Sí, cuando se hace System.out.println(tmp) Java lo transforma automáticamente en System.out.println(tmp.toString())

Podemos escribir o no el toString o no según prefiramos.

Saludos

 

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