# enum als innere Klasse



## nettchen (11. Jul 2007)

Hallo benötige für eine klasse ein enum, der alle möglich statuse des objektes speichert. Kannich dieses enum als innere Klasse bzw ist es sinnvoll das so zu tun?

Also bsp so mit innerer Klasse

```
public class game
{	
	public enum field
	{
		FREE,
		WHITE_STONE,
		BLACK_STONE,
		WHITE_CHECKER,
		BLACK_CHECKER
	}	
	private field state;
}
```

oder so 


```
public enum field
	{
		FREE,
		WHITE_STONE,
		BLACK_STONE,
		WHITE_CHECKER,
		BLACK_CHECKER
	}	


public class game
{	
	private field state;
}
```

Brauche das enum eigentlich nur in dieser Klasse weil alle anderen legen bloß objekte diesr klasse an oder werten es aus.

Was mich an der 2. variante stört ist das ich für das enum eine eigene datei anlegen muss


----------



## mikachu (11. Jul 2007)

variante eins ist laut deiner beschreibung sinnvoll.
doch bitte Klassen mit Großbuchstaben am anfang zwecks leserlichkeit schreiben.


----------



## nettchen (11. Jul 2007)

ok habs jetzt bloß schnell hingetippt und nicht auf groß und kleinschreibung geachtet das nächste mal pass ich mehr auf.

Habe bei weiterer Überlegung festgestellt das in meinen datenklassen noch weitere enums benötige, eine den status(also gelöscht gestartet beendet) brauch ich in meheren Klassen als parameter typ kann ich die 4 enums auch in eine Klasse packen oder ist das zu unübersichtlich


----------



## mikachu (11. Jul 2007)

wenn du die enums in weiteren klassen benötigst, solltest du die enums in extra datein packen.
ich geh nach der regel: jede klasse in extra datei.

das sieht bei großen projekten dann übelst übersichtlich aus 
aber deswegen gibt es ja packages 

und bitte... das nächste mal, mach mal nen punkt , oder nen komma zwischendurch -> erhöht die lesbarkeit


----------



## nettchen (11. Jul 2007)

Ja da hast du wahrscheinlich recht, habe aber eben auch dann enums mit nur 3 Parametern und dann sieht die Klasse so leer aus, aber mal als innere Klasse und mal alsäußere ist besimmt auch nicht so optimal also dann doch für jede eine eigene datei


----------



## mikachu (11. Jul 2007)

es ist doch egal, wieviele elemente ein enum hat...
es soll nur zur leichteren verständlichkeit des codes dienen.

und enums sind leicht zu erweitern -> noch nen pluspunkt für enums


----------



## Guest (18. Jul 2007)

nettchen hat gesagt.:
			
		

> Kann ich dieses enum als innere Klasse bzw ist es sinnvoll das so zu tun?


innere enums sind automatisch statisch, von daher können innere enums nicht mehr als ganz normale enums, die eine eigene Datei spendiert bekommen. Ich würde enums eigentlich immer in eine eigene Datei packen.

Fred


----------



## byte (18. Jul 2007)

Anonymous hat gesagt.:
			
		

> nettchen hat gesagt.:
> 
> 
> 
> ...



Enums sind IMMER static, egal ob in einer Klasse definiert oder als eigene Datei. Wie man das macht, ist eigentlich ziemlich wurscht. Ich würde es halt davon abhängig machen, ob die Konstanten semantisch zu Objekten einer bestimmten Klasse gehören (dann in dieser Klasse definieren) oder kontextlos sind (dann als eigene Datei).


----------

