El primero es enum class
enum coffeeSize{
BIG(8), HUGE(10), OVERWHELMING(16);
private int ounces;
coffeeSize(int ounces ){
this.ounces = ounces;
}
public int getOunces(){
return ounces;
}
}
Esta es la clase CoffeeTest1 y main
public class CoffeeTest1 {
coffeeSize size;
public static void main (String args[]) {
CoffeeTest1 drink1 = new CoffeeTest1();
drink1.size = coffeeSize.BIG;
System.out.println(" " + drink1.size.getOunces());
}
}
Lo siguiente es salida
8
Mi pregunta: no entiendo cómo drink1.size.getounces()
manejar la salida 8. No he dado un coffeeSize(8)
objeto constructor (ej coffeeSize somex = new coffeeSize(BIG)
.:). Quiero saber esta lógica sutil simple detrás. ¿Alguien puede ayudarme a entender por favor?
No entiendo cómo "drink1.size.getounces ()" logran la salida 8.
[...]
Quiero saber esta lógica sutil simple detrás.
Para comprender la lógica detrás de esto, puede pensar en su enum
como un regular class
(que en realidad es cómo se compila), y
BIG(8)
como una instancia de esta clase similar a
new coffeesize(8);
Ahora debería quedar claro por qué drink1.size.getOunces()
imprime 8: BIG
es solo una instancia de la coffeesize
enumeración, para la cual se establece ounces
en 8 cuando se construye.
Una sugerencia: encuentre, aprenda y siga los estándares de codificación Sun Java. Mejorará la legibilidad de su código.
Produce 8 porque ese es el tamaño, en onzas, para un GRAN tamaño de café, de acuerdo con su enumeración. Ese es el valor que pasaste al GRAN constructor.
drink1
es la instancia de la clase, que tiene un miembro de datos visibles de paquete de tipo coffeeSize
denominado size
. Cada coffeeSize
instancia tiene un método getOunces
que devuelve el valor entero que pasó a su constructor.
No hay nada sutil al respecto.
Notará que el getOunces
método está definido en la enumeración. Los valores de enumeración pueden tener propiedades y métodos, en Java.
Está implícito que CoffeeTest1
tiene un campo que hace referencia al valor de enumeración.
Entonces, drink1
es una instancia de esa clase ...
la size
propiedad se establece en la BIG
instancia de la enumeración ...
Big
tiene ounces
8.
Cuando especifica BIG(8)
que lo está creando pasando 8 a su constructor (10 o 16). Cuando lo usas, coffeeSize.BIG.getOunces()
estás invocando su método getOunces
. BIG
, HUGE
y OVERWHELMING
son los valores posibles para a coffeeSize
, cada uno con su propio estado.
Tenemos una combinación de Java y C ++ en el código de software. Entonces llamamos a la biblioteca C ++ baiscally .dll y .so desde JAVA usando JNI. En solaris esto funciona bien. Podemos cargar .so y llamar a la función C ++ ...
este es mi código surefire-plugin pom.xml <build> <plugins> <plugin> <groupId> org.apache.maven.plugins </groupId> <artifactId> maven -...
Tengo un escritor de elementos como se muestra a continuación: <beans: nombre de propiedad = "lineAggregator"> <beans: bean class = "org.springframework.batch.item.file.transform.FormatterLineAggregator"> <beans: ...
¿Es posible usar Entity Manager o alguna otra API JPA para ejecutar una consulta y obtener resultados, por ejemplo, como una Lista, sin tener que crear una clase de Entidad para la misma? Básicamente, quiero ser ...