I searched so long for what enums are useful. In my Opinion there are Variables with many keywords. So have to programming a program what Is used to manage a bank. My Enum has 2 Variables EINZAHLUNG(Deposit) and AUSZAHLUNG(Payout).
public enum Transaktionsart {
EINZAHLUNG,AUSZAHLUNG;
}
So I have an class Menue which is provide to call the Methods. The menue would be chosen by an UserInput.
public class Menue {
public void auswahlMenue() {
String auswahl;
do {
menuePunkte();
auswahl = MeineEingabe.erfasseAuswahl("Auswahl: ");
switch (auswahl) {
case "10":
geldEinzahlen();
break;
case "11":
geldAbheben();
break;
case "15":
System.out.println("Das Programm wurde Beendet!!");
break;
}
} while (!auswahl.equals("15"));
}
}
The method geldEinzahlen() Pays the desired amount to the account. EINZAHLUNG. This would be change the ArrayList, but first I want to know why I should use enum.
public void geldEinzahlen(){
System.out.println("Ihr aktueller Kontostand betreagt: " + konto.getKontoStand() +"€");
double betrag = MeineEingabe.erfasseDouble("Wie viel wollen sie Einzahlen? ");
System.out.println(konto.getKontoStand() + betrag);
}
The method geldAbheben() is used to pay a fee from the account. The account cant be under 0€. This would be change the ArrayList, but first I want to know why I should use enum.
public void geldAbheben(){
double betrag = MeineEingabe.erfasseDouble("Wie viel wollen Sie abheben? ");
if(konto.getKontoStand() > betrag){
}
else if (konto.getKontoStand() < betrag){
System.out.println("Leider koennen Sie diesen Betrag nicht auszahlen");
}
}
I have csv.file but I think that is it not so important.
So the teacher wants that I use a enum but in my Opinion it is really useless. I want to ask the community of Stack Overflow. What can I write for example that I have usage of enums.
Advertisement
Answer
It seems that you are missing the great point of enums. Enum can contain implementation, so using enum avoids any need of writing switch/case structure at all.
Let me give you and example. Please excuse me, but I am going to use English in names of identifiers.
public enum Transaction {
DEPOSIT {
@Override public void perform(double amount) {
// code that puts amount to deposit
}
},
PAYOUT {
@Override public void perform(double amount) {
// code that pays specified amount
}
},
;
public abstract void perform(double amount);
}
Now it is very easy to use this code:
Transaction.valueOf(transactionName).perform(amount);
.
Where transactionName
and amount
can be parameters.