ENUM mit SWITCH "Jahreszeiten"

Marsik

Grünschnabel
Hallo Profis, wie kann ich folg. Beispiel zu Ende br?:confused:
public klass Test{
enum Wochentag {
MONTAG,
DIENSTAG,
MITTWOCH,
DONNERSTAG,
FREITAG,
SAMSTAG,
SONNTAG
}

enum Jahreszeit {
WINTER(„Dezember bis Februar“),
/*oder so:** WINTER(DEZEMBER,JANUAR,FEBRUAR) */ ?
FRUEHLING(„Dezember bis Februar“),
SOMMER(„Dezember bis Februar“),
HERBST(„Dezember bis Februar“)




}


public static void main(String[] args) {

Wochentag tag = Wochentag.MONTAG;
System.out.println("tag = " + tag );
if (tag < Wochentag.Samstag && tag != Wochentag.Mittwoch) {

}



for (Wochentag tag : Wochentag.values()) {

switch(tag) {
case MONTAG:
case DINSTAG:
case MITTWOCH: System.out.println("sind Arbeitstage");
break;
case DONNERSTAG: System.out.println("wird manchmal gearbeitet");
break;
case FREITAG: System.out.println("wird ganz selten gearbeitet");
break;
case SAMSTAG:
case SONNTAG: System.out.println("sind Wochenende");
break;
}
}
}
Jahreszeit z = Jahreszeit.Winter;
System.out.println("aktuelle Jahreszeit: " + z );

for (Jahreszei z : Jahreszeitvalues()) {


switch(z) { //wie konnte man dann ausgegeben bekommen etwa so:
//WINTER umfasst Dezember und Februar
// FFUEHLING umfasst Maerz, April, Mai
case WINTER:
case FRUEHLING:
case SOMMER:
case HERBST:
break;

}
}
}

}
 
Zuletzt bearbeitet:
Zu Ende br? Was ist ein "br"? Falls es "bringen" heißten soll: Was soll es denn einmal machen? Generell: Code-Tags verwenden!
 
Hallo,

viele Leute hier kopieren sich die Quelltexte der TEs in ihre IDEs um schnell und gut helfen zu können.
Es scheint so als ob du den Quelltext mit einem Texteditor geschrieben hast ohne mal zu kompilieren. Deswegen habe ich erstmal 5 min Fehler gefixt.
Du hilfst deinen Helfern indem du möglichst guten Code mit code tags postest. Evtl auch nur Ausschnitte, aber möglichst lauffähig.

Deine enums sind basis enums, die ausser den Elementen und ihrer IDs, die automatisch aus der Reihenfolge erzeugt werden keine Eigenschaften wie "Dezember bis Februar" besitzen.
Mit einer Inlinedeklaration einer passenden Methode könnte dann so eine Eigenschaft implementiert werden.
z.B.:
Code:
	public enum Jahreszeiten {
		WINTER, FRUEHLING, SOMMER, HERBST;
		public String getMonths() {
			switch (this) {
			case WINTER:
				return "Jan bis Mär";
			case FRUEHLING:
				return "Apr bis Jun";
			case SOMMER:
				return "jul bis Aug";
			case HERBST:
				return "Sep bis Dez";
			default:
				return null;
			}
		}
	}
 
Moin,

ich würde es mal so probieren:
Code:
public enum Jahreszeit { WINTER, FRUEHLING, SOMMER, HERBST };

Jahreszeit zeit = Jahreszeit.SOMMER;

switch( zeit ) 
{
    case WINTER:
        return "Jan bis Mär";
    case FRUEHLING:
        return "Apr bis Jun";
    case SOMMER:
        return "jul bis Aug";
    case HERBST:
        return "Sep bis Dez";
    default:
        return null;
}

Du kannst keine Funktion innerhalb der enum deklarieren, das ist ein reiner Aufzählungstyp!

Gruß
Klaus
 
Zurück