diff --git a/src/main/java/Enigma/model/Reflektor.java b/src/main/java/Enigma/model/Reflektor.java
new file mode 100644
index 0000000000000000000000000000000000000000..cc7c69dc5d6291056189ae515715aa2ddb1356a1
--- /dev/null
+++ b/src/main/java/Enigma/model/Reflektor.java
@@ -0,0 +1,83 @@
+package Enigma.model;
+
+/**
+ * Klasse Reflektor
+ *
+ * Der Reflektor nimmt einen Buchstaben der Klasse Walze entgegen und und kodiert diesen.
+ * Der kodierte Buchstabe wird an die Klasse Walze wieder zurückgegeben.
+ *
+ * Prinzipiell verhält sich die Klasse Refelktor wie die Klasse Walze, außer das sie sich
+ * nach Betätigung einer Taste nicht dreht (starr montiert) und sie gibt keine Signale
+ * an andere Walzen zum drehen.
+ */
+public class Reflektor {
+
+    /**
+     * Konstanten und Variablen der Klasse Reflektor
+     *
+     * WALZE_ALPHABET : konstanter Char-Array mit den Werten des Alphabeths (26 Werte)
+     * WALZE_REFLEKTOR : konstanter Char-Array mit den Werten des Reflektors (26 Werte)
+     * reflektorBuchstabeRein : Character mit dem an die Klasse übergebenen Character
+     * reflektorBuchstabeRaus : Character nach der Codierung in der Klasse Reflektor
+     * iPositionReflektor : Integer mit der Positionsnummer des Characters im Array
+     */
+    private final Character[] WALZE_ALPHABET = {'A','B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
+    private final Character[] WALZE_REFLEKTOR= {'E', 'J', 'M', 'Z', 'A', 'L', 'Y', 'X', 'V', 'B', 'W', 'F', 'C', 'R', 'Q', 'U', 'O', 'N', 'T', 'S', 'P', 'I', 'K', 'H', 'G', 'D'};
+    private Character reflektorBuchstabeRein;
+    private Character reflektorBuchstabeRaus;
+    private int iPositionReflektor;
+
+
+    /**
+     * Funktion Codiere
+     *
+     * Durchsucht das konstante Char-Array WALZE_ALPHABET nach der Position eines bestimmten
+     * Buchstabens und gibt den Character an der entsprechenden Position im konstanten
+     * Char-Array WALZE_REFLEKTOR zurück.
+     *
+     * @return reflektorBuchstabeRaus: Character: Der kodierte Buchstabe aus dem Reflektor
+     */
+    public char codiere (){
+        int index = 0;
+
+        /*Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze*/
+        for(index = 0; index < WALZE_ALPHABET.length; index++) {
+            if(getReflektorBuchstabeRein().equals(WALZE_ALPHABET[index])) {
+                iPositionReflektor = index;
+                break;
+            }
+        }
+        /*Im Char-Array WALZE_REFLEKTOR wird der Character an der Position iPositionReflektor ausgegeben*/
+        reflektorBuchstabeRaus = WALZE_REFLEKTOR[iPositionReflektor];
+        return reflektorBuchstabeRaus;
+    }
+
+    /**
+     * Getter getReflektorBuchstabeRein
+     *
+     * Gibt den Wert der Variablen reflektorBuchstabeRein zurück
+     *
+     * @return reflektorBuchstabeRein: Character: gibt den Buchstaben zurück
+     */
+    public Character getReflektorBuchstabeRein() {
+        return reflektorBuchstabeRein;
+    }
+
+
+    /**
+     * Setter setReflektorBuchstabeRein
+     *
+     * Setzt den Wert der Variablen reflektorBuchstabeRein
+     *
+     * @param reflektorBuchstabeRein: Character: setzt den Wert des Buchstabens
+     */
+    public void setReflektorBuchstabeRein(Character reflektorBuchstabeRein) {
+        if (Character.isLetter(reflektorBuchstabeRein)){
+            this.reflektorBuchstabeRein = reflektorBuchstabeRein;
+        } else{
+            System.err.println("Kein Buchstabe übergeben im Reflektor");
+        }
+
+    }
+
+}
diff --git a/src/main/java/Enigma/model/Walze.java b/src/main/java/Enigma/model/Walze.java
index 2d72adc6bf887c4593b4c591b2aaf1c7eba020de..06189d06cbb06c9e01d0557f2746bf4e995e6efd 100644
--- a/src/main/java/Enigma/model/Walze.java
+++ b/src/main/java/Enigma/model/Walze.java
@@ -2,12 +2,12 @@ package Enigma.model;
 
 public class Walze {
 
-    Character buchstabe = null;
-    Character ringstellung = null;
-    int walzennr = 0;
-    int iPositionBuchstabe = 0;
-    int iPositionBuchstabeRe = 0;
-    Character[] walze = new Character[25];
+    private Character buchstabe = null;
+    private Character ringstellung = null;
+    private int walzennr;
+    private int iPositionBuchstabe;
+    private int iPositionBuchstabeRe;
+    private Character[] walze;
 
     /**
      * Gibt die Parameter der Walze mit
@@ -17,6 +17,7 @@ public class Walze {
      * @param ringstellung : Character : Einstellung des Notch
      */
     public Walze(int walzennr, Character buchstabe, Character ringstellung) {
+        this.walze = new Character[25];
         this.walzennr = walzennr;
         this.buchstabe = buchstabe;
         this.ringstellung = ringstellung;
@@ -25,7 +26,7 @@ public class Walze {
     /**
      * @return buchstabe : Character : gibt den neuen Buchstaben zurueck
      */
-    public char getBuchstabe() {
+    public Character getBuchstabe() {
         return buchstabe;
     }
 
@@ -37,7 +38,7 @@ public class Walze {
      * @param buchstabe : Character : Grundeinstellung der Walze
      */
     private void setBuchstabe(Character buchstabe) {
-        this.buchstabe.toUpperCase(buchstabe);
+        this.buchstabe = Character.toUpperCase(buchstabe);
 
         if(buchstabe.isLetter(buchstabe)) {
             this.buchstabe = buchstabe;
@@ -141,7 +142,7 @@ public class Walze {
 
         //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
         for(index = 0; index < walzeAlpha.length; index++) {
-            if(buchstabe.equals(walzeAlpha[index])) {
+            if(getBuchstabe().equals(walzeAlpha[index])) {
                 iPositionBuchstabe = index;
                 break;
             }
@@ -198,7 +199,7 @@ public class Walze {
 
         //Ermittelt die Position des Buchstaben buchstabe auf der Alphabetswalze
         for(index = 0; index < walze.length; index++) {
-            if(buchstabe.equals(walze[index])) {
+            if(getBuchstabe().equals(walze[index])) {
                 iPositionBuchstabeRe = index;
                 break;
             }