Ich entschuldige mich:die Instanzen in einer Enum Constructing ohne die Enum Klasse zu modifizieren
public enum Seeds {
TOMATE,
CONCOMBRE,
SALADE,
PATATE,
BETTERAVE;
}
Anstatt eine ganze Reihe von Konstanten für den Kaufpreis, den Verkaufspreis und die Reifungszeit jedes Samens zu erstellen und sie jedes Mal neu eingeben zu müssen, wollte ich jeder Aufzählung direkt Attribute in der Klasse zuweisen:
public enum Seeds {
TOMATE(2.00, 3.50, 5),
CONCOMBRE(1.00, 2.50, 6),
SALADE(1.50, 4.50, 8),
PATATE(2.50, 3.50, 4),
BETTERAVE(2.00, 4.00, 10);
private final double
buy_price,
sell_price;
private final int
maturation_time;
public Seeds(double buy_price, sell_price, int maturation_time) {
this.buy_price = buy_price;
this.sell_price = sell_price;
this.maturation_time = maturation_time;
}...
und geben ihre Attribute mit Gettern zurück.
Allerdings hat mir mein Lehrer gesagt, dass ich die zur Verfügung gestellte Enum-Klasse nicht ändern kann ... also habe ich mich gefragt, ob es möglich ist, die Samen in einer anderen Klasse zu konstruieren.
I iterated auf Ihre Idee, das ist, was ich gelandet 'öffentliche Klasse Magasin { private endgültige statische Int BUY = 0, SELL = 1, RIPE = 2; Privat final static double [] [] MAGASIN = {{2,00, 3,50, 5,0}, // Tomate \t {1,00, 2,50, 6,0}, { \t 1,50, 4,50, 8,0}, { \t 2,50, 3,50, 4,0}, \t {2,00, 4,00, 10,0}, }; // getters ... } ' – CaffeinatedSynapse
Ich erklärte im Grunde eine STORE-Matrix mit allen Daten darin konstant ... Ich wollte Seans Idee versuchen, aber ich habe keine Erfahrung mit Schnittstellen und konnte ihre Funktion nicht wirklich verstehen auf eigene Faust. – CaffeinatedSynapse
Das funktioniert auch. Sie könnten auch Getter wie folgt hinzufügen: 'public double getBuyPrice (Seeds seedType) {return MAGASIN [seedType.ordinal()] [KAUFEN]; } ' – Joe