Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: momo en 15 de Octubre 2014, 22:41
-
* 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.
Piedras:
public enum Piedras {
CALIZA(1200), MARMOL(1423.55f), PIZARRA(1325), CUARZITA(1466.22f);
private final float pesoPiedra;
Piedras(float pesoPiedra) {
this.pesoPiedra = pesoPiedra;
}
public double getPesoPiedra() {
return pesoPiedra;
}
}
TestPesoPiedra:
public class TestPesoPiedra {
public static void main(String[] args) {
int contador = 1;
float pesoPalet = 2.27f;
for (Piedras objeto : Piedras.values()) {
System.out.println("Tipo de Piedra " + contador + ": "
+ objeto.toString() + " " + "|| Peso Palet :"
+ (pesoPalet * (float) objeto.getPesoPiedra()));
contador++;
}
}
}
-
Hola momo!
Tu respuesta a este ejercicio esta correcta.
Algunos puntos a tomar en cuenta son:
Clase Piedras: Tienes una constante (pesoPiedra) de tipo "float" y un método get (getPesoPiedra) declarado como "double" cuya funcion es devolver el valor de la constante pesoPiedra. El punto es, que tienes una diferencia de tipos entre esta constante y este método, (float constante, double método) me parece extraño que esto no genere un error en compilación, pero aun así lo mejor es que mantengas la costumbre de declarar un método del mismo tipo que la variable o constante de la cual cuyo valor sera devuelto.
Clase TestPesoPiedra: Dentro de una instrucción del tipo System.out.println("..."); no es necesario incluir el metodo toString(); puesto que la misma instrucción System.out.println("..."); se encarga de convertir a String el valor de las variables que estén dentro de la instrucción. Si tomas esto en cuenta podrías sustituir tu fragmento de codigo + objeto.toString() + " " + "|| Peso Palet :"
por + objeto + " " + "|| Peso Palet :"
Otros pequeños detalles como, concatenar la cadena " kg" para indicar el tipo de unidad de peso en que se expresa el peso de cada palet, y declarar Peso Palet: + (pesoPalet * (float) objeto.getPesoPiedra()));
en lugar de Peso Palet : + (pesoPalet * (float) objeto.getPesoPiedra()));
donde la simple posición del punto doble ":" afecta lo que es la interface o visualización de lo que muestra tu código, también debes de tomarlos en cuenta.
Saludos!
-
De nuevo aquí amigo fue un despiste de mi parte comenzando estaba trabajando con double .. pero después modifique y lo empece a trabajar con float no me percate de que no le había cambiado el nombre. jaja andaba un poco despistado
Gracias Nuevamente.