---
title: 'Zusätzliche statische Initialisier im enum'
url: 'https://www.tutego.de/blog/javainsel/2015/11/zusaetzliche-statische-initialisier-im-enum'
markdown: 'https://www.tutego.de/blog/javainsel/2015/11/zusaetzliche-statische-initialisier-im-enum.md'
date: '2015-11-07'
description: 'Es sind Blöcke der Art static { … } im Rumpf eines Aufzählungstyps erlaubt. Lädt die Laufzeitumgebung einer Klasse, initialisiert sie der Reihe nach alle statischen Variablen bzw. führt die static-Blöcke aus. Die Aufzählungen sind statische Variablen und werden beim Laden initialisiert. Steht der s…'
taxonomy:
  category:
    - Insel
---

# Zusätzliche statische Initialisier im enum

![Illustration einer tropischen Insel mit Palmen und einem hohen Berg](https://www.tutego.de/blog/javainsel/user/themes/tutego/images/insel-cover.jpg)# Java Blog für Programmierer

[Java Blog für Programmierer](https://www.tutego.de/blog/javainsel/)

## Zusätzliche statische Initialisier im enum

07.11.2015 · [Christian Ullenboom](https://www.tutego.de/blog/javainsel/author/admin/)

Es sind Blöcke der Art static { … } im Rumpf eines Aufzählungstyps erlaubt. Lädt die Laufzeitumgebung einer Klasse, initialisiert sie der Reihe nach alle statischen Variablen bzw. führt die static-Blöcke aus. Die Aufzählungen sind statische Variablen und werden beim Laden initialisiert. Steht der statische Initialisierer hinter den Konstanten, so wird auch er später aufgerufen als die Konstuktoren, die vielleicht auf statische Variablen zurückgreifen wollen, die der static-Block initialisiert. Ein Beispiel:

```java
public enum Country {
```

```java
  GERMANY, UK, CHINA;
```

```java
  {
```

```java
    System.out.println( "Objektinitialisierer" );
```

```java
  }
```

```java
  static {
```

```java
    System.out.println( "Klasseninitialisier" );
```

```java
  }
```

```text

```

```java
  private Country() {
```

```java
    System.out.println( "Konstruktor" );
```

```java
  }
```

```text

```

```java
  public static void main( String[] args ) {
```

```java
    System.out.println( GERMANY );
```

```java
  }
```

```java
}
```

Die Ausgabe ist:

Objektinitialisierer

Konstruktor

Objektinitialisierer

Konstruktor

Objektinitialisierer

Konstruktor

Klasseninitialisier

GERMANY

Die Ausführung und Ausgabe hängt von der Reihenfolge der Deklaration ab und jede Umsortierung führt zu einer Verhaltensänderung. Jetzt könnten Programmierer auf die Idee kommen, mögliche static-Blöcke an den Anfang zu setzen, vor die Konstanten. Meine Leser sollten das Ergebnis testen …

Kategorien: [Insel](https://www.tutego.de/blog/javainsel/category/insel/)

[← Alle Beiträge](https://www.tutego.de/blog/javainsel/)

---

## Navigation

- Next: [Schöne enum-Frageliste](https://www.tutego.de/blog/javainsel/2015/11/schoene-enum-frageliste.md)
