Hola. Dejo el Ejercicio CU00682B del tutorial pdf de programación Java de aprenderaprogramar .Enumerados como clases Enum en Java. Constructores. Método values.
EJERCICIO
Declara una clase que represente el tipo enumerado que define tipos de piedra con los valores CALIZA, MARMOL, PIZARRA, CUARZITA. Si sus pesos específicos son de 1200, 1423.55, 1325 y 1466.22, crea un programa que muestre el peso de los palets de cada uno de los tipos de piedra. Puedes comprobar si tu código es correcto consultando en los foros aprenderaprogramar.com.
clase main TestTiposDePiedra import java.io.*;
/**
* TestTiposDePiedra
*
* @author (paramonso)
* @version (1.0 // 12/10/2018)
*/
//Ejemplo aprenderaprogramar.com
public class TestTiposDePiedra {
public static void main (String[ ] Args) {
String patron ,resultado ;
TiposDePiedra miTiposDePiedra = TiposDePiedra.CALIZA; //El tipo lo definimos en otra clase como public enum
System.out.println ("Las piedras del catalogo son : ");
System.out.println ("Tipo Piedra \t Color\t\tPeso especifico\t\t ");//Ejemplo de uso de print con tabulador \t
patron=" %s\t %s %12s\n";
for (TiposDePiedra tmp: miTiposDePiedra.values() ) {
resultado = String.format(patron,tmp.toString(),tmp.getTipo(),tmp.getPesoEspecifico());
System.out.print(resultado);
}
pause();//Pausar pantalla
TiposDePiedra tiposPiedra = TiposDePiedra.MARMOL;
System.out.println ("\nLa piedra elegida por el sistema es " +tiposPiedra.toString() +
" con un color " +tiposPiedra.getTipo() + "\ny con un peso específico de " +tiposPiedra.getPesoEspecifico() + " kg/m3");
System.out.println ("Un palet admite 3.15 m3 de volumen.\n\n A continuación el peso de los palets de las distintas piedras:");
for (TiposDePiedra tmp: TiposDePiedra.values() ) {
System.out.println (" el palet de "+tmp.toString() + " pesa 3.15 x " +tmp.getPesoEspecifico()+"\t="+ (3.15f*(float)tmp.getPesoEspecifico() ) + " kg");
}
} //Cierre del main
//Pausar pantalla
public static void pause(){
int inChar;
inChar=0;
System.out.println("\nPulse Enter para continuar...");
try {
inChar = System.in.read();
}
catch (IOException e){
System.out.println("Error reading from user");
}
System.out.print("\u000C");
}
} //Cierre de la clase
Clase TiposDePiedra/**
* Enumeration class TiposDePiedra - write a description of the enum class here
*
* @author (paramonso)
* @version (1.1 // 12/10/2018)
*/
public enum TiposDePiedra
{
CALIZA ("Apomazado ",1200.00), //Separamos con comas
MARMOL ("Crema ", 1423.55),
PIZARRA ("Multicolor", 1325.00),
CUARZITA("Gris ", 1466.22);
//Campos tipo constante
private final String tipo; //Color de la piedra
private final double pesoEspecifico; //Peso específico de la piedra
/**
* Constructor. Al asignarle uno de los valores posibles a una variable del tipo enumerado el constructor asigna
automáticamente valores de los campos
*/
TiposDePiedra (String tipo, double pesoEspecifico) {
this.tipo = tipo;
this.pesoEspecifico = pesoEspecifico;
} //Cierre del constructor
//Métodos de la clase tipo Enum
public String getTipo() { return tipo; }
public double getPesoEspecifico() { return pesoEspecifico; }
}
Gracias
.