enum und Integer-Werte

Status
Nicht offen für weitere Antworten.

Eisscholle

Mitglied
Hi,

kurze Frage zu enum.

Ich will ein enum wie folgt:

Code:
enum NumberCards
{
	7, 8, 9, 10, Bube, Dame, Ass
}

Er macht mir Probleme beim compilieren wegen der Zahlen 7 bis 10. Wenn ich die weg lasse, geht alles. Was muss ich ändern, damit ich meinen Code übersetzen kann?

Danke,
VG
 
S

SlaterB

Gast
eine Enum muss wie eine normale Variable/ Konstante benannt sein,
7 ist 7 und kein Variablennamen,
'sieben' ginge
 

moormaster

Top Contributor
7,8,9,10 sind bereits literale Konstanten und können nicht neu belegt werden... also denk Dir andere Namen dafür aus...

Sieben,Acht,Neun,Zehn z.B.
 

byte

Top Contributor
Im übrigen schreibt man sie (da Konstanten) in Großbuchstaben. Du kannst ja die toString() jeweils überschreiben und somit eine beliebige Schreibweise für die Ausgabe wählen.
 

Eisscholle

Mitglied
Hi, danke für die schnellen Antworten. Leider will mein Prof., dass wir die Aufgaben mit 7,8,9 etc. lösen und auch kein if etc. nutzen. Von daher bin ich an die Zahlen förmlich getackert. Würde es auch lieber anders lösen. Hatte jetzt noch probiert alles einzeln als Konstanten zu definieren aber das ging auch nicht. Kann mir bitte jmd. zumindest für eine Zahl einmal ein Stück Code geben, wie ich beim Aufruf von NumberCards.SIEBEN die Zahl 7 erreiche!?

Vielen Dank.
 

Eisscholle

Mitglied
Naja, wir sollen ein enum schreiben für die Werte von Spielkarten. Also 7,8,9,10,Bube,Dame,Koenig,Ass. Will ich dann eine Spielkarte instanziieren, sage ich eben NumberCard.SIEBEN. Das Objekt soll dann nicht sieben sondern 7 bekommen. Also muss ich irgendwie die Zahl 7 in das enum bekommen. Das stellt mich aber vor ein rießen Problem.
 

moormaster

Top Contributor
Hmm also 7 als Bezeichner kannst du jedenfalls nicht verwenden. Wenn du davon auf 7 schliessen sollst, dann geht das nur mit Fallunterscheidungen.

Code:
public enum GameCard
{
 SIEBEN, ACHT, NEUN, ZEHN, BUBE, DAME, KOENIG, ASS;
}

public class Main
{
 public static String getGameCardDescription(GameCard gc)
 {
   switch (gc)
   {
     case SIEBEN: return "7";
     case ACHT: return "8";
     case NEUN: return "9";
     case ZEHN: return "10";
     case BUBE: return "Bube";
     case DAME: return "Dame";
     case KOENIG: return "König";
     case ASS: return "Ass";
   }

   return "";
 }

 public static int getGameCardValue(GameCard gc)
 {
   switch (gc)
   {
     case SIEBEN: return 7;
     case ACHT: return 8;
     case NEUN: return 9;
     case ZEHN: return 10;
     case BUBE: return 10;
     case DAME: return 10;
     case KOENIG: return 10;
     case ASS: return 11;
   }

   return 0;
 }

 public static void main(String[] args)
 {
   System.out.println(getGameCardDescription(GameCard.SIEBEN));
   System.out.println(getGameCardValue(GameCard.SIEBEN));
 }
}
 

byte

Top Contributor
Wollte ich grade vorschlagen. Man kann auch beliebige Methoden in Enums definieren, überschreiben, usw. Wie ich oben schon geschrieben hab, aber auf mich hört ja keiner. :?
 

Eisscholle

Mitglied
Hi,

also ich habe auch noch etwas gefunden.

Einmal http://www.resourcecode.de/view.php?id=2423 und als zweites http://www.javabuch.de/.

@moormaster: Habe dein Beispiel mal angeschaut. So ähnlich probiere ich auch gerade mit Überladen herum. Aber: Wie löse ich jetzt, dass ich bei NumberCard.BUBE auch Bube als Zeichenkette zurueck bekomme? Ich versuche es zwar mit überladen aber irgendwie komme ich nicht ganz zum Ziel.

Code:
enum NumberCard
{

        SIEBEN(7);
	//BUBE("Bube");
	
	private NumberCard(int v)
	{
		value = v;
	}
	
	private NumberCard(String n)
	{
		name = n;
	}
	
	
	int value;
	String name;
}

Wie ihr seht, habe ich BUBE("Bube") auskommentiert, weil es der Compiler nicht mitmacht:
Code:
NumberCard.java:18: invalid method declaration; return type required
        BUBE("Bube");
        ^
NumberCard.java:18: illegal start of type
        BUBE("Bube");
             ^
NumberCard.java:18: <identifier> expected
        BUBE("Bube");
                    ^
3 errors

kann mir da noch jmd. auf die Sprünge helfen. Tüftel zwar weiter aber es häng noch.
 

Eisscholle

Mitglied
Hi,

für alle Interessierten: Die Lösung.

Code:
enum NumberCard
{
	//Kartenwerte franzoesisches Blatt
	SIEBEN(7),ACHT(8),NEUN(9),ZEHN(10),BUBE("Bube"),DAME("Dame"),KOENIG("König"),ASS("Ass");
	
	
	private NumberCard(int v)
	{
		isNumberCard = true; //Bildkarte
		valueOf = String.valueOf(v);
	}
	
	private NumberCard(String v)
	{
		isNumberCard = false; //Wertkarte
		valueOf = v;
	}
	
	public boolean isNumberCard()
	{
		return isNumberCard;	
	}
	
	public String getValueOf()
	{
		return valueOf;	
	}
	
	private boolean isNumberCard = false;
	private String valueOf;
	
	public static void main(String... args)
	{
		NumberCard card1 = NumberCard.BUBE;
		System.out.println(card1.getValueOf());
		//Bube
		
		NumberCard card2 = NumberCard.NEUN;
		System.out.println(card2.getValueOf());	
		//9
	}
}

Ich kann jetzt mir speziell die Werte (Bildkarten/Wertkarte) ausgeben lassen und gleichzeitig abfragen, ob es sich um eine Bildkarte/Wertkarte handelt.

Vielen Dank an alle Helfer!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L enum aus Integer umwandeln Java Basics - Anfänger-Themen 3
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
volcanos enum und switch (neu): falschen Wert mit IllegalArgumentException oder mit EnumConstantNotPresentException abfangen ? Java Basics - Anfänger-Themen 51
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Frage bzgl. Enum-Handhabung Java Basics - Anfänger-Themen 16
S Java Enum Java Basics - Anfänger-Themen 2
I Validation, ob String ein Wert aus einem Enum enthält Java Basics - Anfänger-Themen 3
V Enum Java Basics - Anfänger-Themen 1
C Farben als Enum Java Basics - Anfänger-Themen 3
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
I JAXB und Enum Java Basics - Anfänger-Themen 7
M Enum-Variable HashMap zuweisen Java Basics - Anfänger-Themen 5
B Enum innerhalb einer Klasse / anderes Konzept Java Basics - Anfänger-Themen 8
N Enum Typen, was passiert intern mit ihnen? Java Basics - Anfänger-Themen 2
A enum Java Basics - Anfänger-Themen 6
O Enum Array Rekursiv abarbeiten Java Basics - Anfänger-Themen 44
B ENUM to List<String> konvertieren Java Basics - Anfänger-Themen 2
N Java Enum converter Methode Java Basics - Anfänger-Themen 5
F Enum von Ländern Java Basics - Anfänger-Themen 8
J Klassen Enum als Informationsträger Java Basics - Anfänger-Themen 10
T Datentypen enum static Chaos (blutiger anfänger) Java Basics - Anfänger-Themen 5
R Enum ist das gleiche wie? Java Basics - Anfänger-Themen 15
P Klassen Richtige Anwendung einer Enum-Klasse Java Basics - Anfänger-Themen 11
E Datentypen Problem beim Speichern von enum. Java Basics - Anfänger-Themen 10
J Compiler-Fehler class interface or enum expected Java Basics - Anfänger-Themen 1
E Objektvergleich Enum Java Basics - Anfänger-Themen 7
kilopack15 Euromünzen in enum als Liste ausgeben Java Basics - Anfänger-Themen 11
N Enum als generischer Typ Java Basics - Anfänger-Themen 4
H Datentypen Fehler bei Verwendung von enum Java Basics - Anfänger-Themen 9
lBlKha0s Fehlermeldung : class interface or enum expected Java Basics - Anfänger-Themen 9
T error: class, interface, or enum expected Java Basics - Anfänger-Themen 5
S Menüauswahl per Enum Java Basics - Anfänger-Themen 12
F Enum via String definieren Java Basics - Anfänger-Themen 2
L Compiler-Fehler error: class, interface or enum expected Java Basics - Anfänger-Themen 2
M java.lang.Enum.valueOf(Unknown Source) Java Basics - Anfänger-Themen 2
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
P Fallunterscheidung mit Überprüfung (enum) Java Basics - Anfänger-Themen 11
H enum Type Java Basics - Anfänger-Themen 6
F Operatoren Enum aus Textdabei laden Java Basics - Anfänger-Themen 3
P enum: cannot be resolved to a type Java Basics - Anfänger-Themen 2
kaoZ Variablen Konstantensammlung vs. Enum Java Basics - Anfänger-Themen 9
H Enum außerhalb einer Klasse? Java Basics - Anfänger-Themen 2
K OOP Aufzählungstypen! enum Currency!!! Java Basics - Anfänger-Themen 5
F ENUM als Variable Java Basics - Anfänger-Themen 4
M Enum: Zugriff auf Konstanten Java Basics - Anfänger-Themen 7
W Enum Konstruktor Type Java Basics - Anfänger-Themen 2
A Erste Schritte ENUM - Werte zurückgeben Java Basics - Anfänger-Themen 5
D Enum als Parameter Java Basics - Anfänger-Themen 6
B Variablen Instanz von Enum zur Laufzeit erstellen und zuweisen Java Basics - Anfänger-Themen 2
B Datentypen Enum vererben/gruppieren? Java Basics - Anfänger-Themen 6
F Datentypen enum Java Basics - Anfänger-Themen 5
J Enum zählen Java Basics - Anfänger-Themen 8
D Einlesen eines Enum-Wertes per console Java Basics - Anfänger-Themen 3
K String mit ENUM vergleichen? Java Basics - Anfänger-Themen 6
N enum vergleiche Klammern? Java Basics - Anfänger-Themen 5
J public enum? in Java Java Basics - Anfänger-Themen 9
D Erste Schritte Enum - das unbekannte Wesen Java Basics - Anfänger-Themen 3
Y ENUM auslesen (Name des ENUM als Variable) Java Basics - Anfänger-Themen 4
P Compiler-Fehler "class, interface, or enum expected" Java Basics - Anfänger-Themen 5
K class, interface or enum expected Java Basics - Anfänger-Themen 14
pg1337 enum-Aufgabe Java Basics - Anfänger-Themen 5
N was sagt enum aus? Java Basics - Anfänger-Themen 3
S Methoden Enum Parameter in Methode Java Basics - Anfänger-Themen 7
G Datentypen enum Frage Java Basics - Anfänger-Themen 3
R Probleme mit Enum Java Basics - Anfänger-Themen 10
B Enum: Instanzen Java Basics - Anfänger-Themen 10
B Generic? Enum - So lösbar? Java Basics - Anfänger-Themen 8
T class, interface, or enum expected Java Basics - Anfänger-Themen 2
M Vererbung Enum Vererbung/Polymorphie Java Basics - Anfänger-Themen 2
P Enum Attribut in Konstruktoren Java Basics - Anfänger-Themen 10
4 Enum Problem Java Basics - Anfänger-Themen 2
turmaline Bindestrich in enum? Java Basics - Anfänger-Themen 5
T Enum - Key als Value ermitteln Java Basics - Anfänger-Themen 7
X enum Fehlermeldung "The public type Day must be defined in its own file" Java Basics - Anfänger-Themen 8
T ist enum.ordinal keine Konstante? Java Basics - Anfänger-Themen 7
R State machine mit enum Java Basics - Anfänger-Themen 9
C Klasseninstanzierung mit enum-Parameter erzwingen Java Basics - Anfänger-Themen 2
I Enum in String Java Basics - Anfänger-Themen 4
N enum richtig verwenden Java Basics - Anfänger-Themen 5
M for(Enum..., ButtonGroup.getElements()... Java Basics - Anfänger-Themen 3
StrikeTom Fragen zu enum Java Basics - Anfänger-Themen 4
A Was ist performanter für Konstanten, enum oder static variablen Java Basics - Anfänger-Themen 5
L String zu Enum parsen Java Basics - Anfänger-Themen 8
J Datentypen Array in enum, ?? Wozu ?? Java Basics - Anfänger-Themen 3
S OOP Durch ein Enum iterieren... Java Basics - Anfänger-Themen 47
K Datentypen enum und liste Java Basics - Anfänger-Themen 7
S String - Enum Java Basics - Anfänger-Themen 3
H Eine enum switchen? Java Basics - Anfänger-Themen 7
G enum für Typsicherheit Java Basics - Anfänger-Themen 9
J class, interface, or enum expected - finde Fehler nicht. Java Basics - Anfänger-Themen 4
J OOP enum Java Basics - Anfänger-Themen 2
O Problem (Enum) Java Basics - Anfänger-Themen 14
S Enum als Index Java Basics - Anfänger-Themen 5
H Enum --> int ?? Java Basics - Anfänger-Themen 3
tanja enum in java Java Basics - Anfänger-Themen 3
D class, interface or enum expected Java Basics - Anfänger-Themen 2
A OOP Übergabe eines Wertes an den enum Konstruktor Java Basics - Anfänger-Themen 12
T Simple Enum Fragen Java Basics - Anfänger-Themen 6
J class, interface, or enum expected Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben