Hallo,
ich beschäftige mich gerade mit enum. Alles schien mir klar
, quasi eine Art Liste
. Aber dann bin ich auf folgendes Beispiel gestoßen:bahnhof: (gekürzt):
Die Ausgabe (ohne einen Sinn, die ursprüngliche Berechnung spielt keine echte Rolle) ist:
isch tu neue Objekt!
isch tu neue Objekt!
EARTH of type class Planet is 59760000000000000000000000,000000
MARS of type class Planet is 6421000000000000000000000,000000
Was mir nicht ganz klar ist:
Enums sind also nicht nur stumpfe Listen mit Elementen, sondern jedes Element das am Anfang steht wird auch als ein Objekt angelegt. Der Konstruktor wird nämlich so oft aufgerufen, wie es Elemente in der enum gibt.
Mag banal sein, für mich war das eine neue Erkenntnis:shock:
Liege ich überhaupt richtig?! Enum ist also gar keine stumpfe Liste, sondern ein Mechanismus um viele listenartige Objekte anzulegen? (Genaugenommen...)
Und dann die Klammern mit Werten hinter den anzulegenden enums!
Ich kann also Werte mit übergeben und sie dann im Konstruktur des enum damit verarbeiten!?
Um die Worte meiner Oma zu nehmen: Alter Schwede - wie geil ist das denn?
Liege ich richtig?:autsch: Es geht mir um das Verständnis, weniger um den Sinn.
ich beschäftige mich gerade mit enum. Alles schien mir klar
Java:
public enum Planet {
EARTH(5.976e+24), MARS(6.421e+23);
private final double mass; // in kilograms
//Constructor!? Muss ja wohl, siehe Ausgabe
Planet(double mass) {
this.mass = mass;
System.out.println("isch tu neue Objekt!");
}
double surfaceWeight(double otherMass) {
//mache irgend etwas
return otherMass * this.mass;
}
public static void main(String[] args) {
for (Planet p : Planet.values()){
System.out.printf("%s of type %s is %f%n",
p, p.getClass(), p.surfaceWeight(10));
}
}
}
Die Ausgabe (ohne einen Sinn, die ursprüngliche Berechnung spielt keine echte Rolle) ist:
isch tu neue Objekt!
isch tu neue Objekt!
EARTH of type class Planet is 59760000000000000000000000,000000
MARS of type class Planet is 6421000000000000000000000,000000
Was mir nicht ganz klar ist:
Enums sind also nicht nur stumpfe Listen mit Elementen, sondern jedes Element das am Anfang steht wird auch als ein Objekt angelegt. Der Konstruktor wird nämlich so oft aufgerufen, wie es Elemente in der enum gibt.
Mag banal sein, für mich war das eine neue Erkenntnis:shock:
Liege ich überhaupt richtig?! Enum ist also gar keine stumpfe Liste, sondern ein Mechanismus um viele listenartige Objekte anzulegen? (Genaugenommen...)
Und dann die Klammern mit Werten hinter den anzulegenden enums!
Ich kann also Werte mit übergeben und sie dann im Konstruktur des enum damit verarbeiten!?
Um die Worte meiner Oma zu nehmen: Alter Schwede - wie geil ist das denn?
Liege ich richtig?:autsch: Es geht mir um das Verständnis, weniger um den Sinn.