Skip to main content

Woche 6 - Referenztypen, Arrays und Strings

Bisher haben wir in unseren Programmen jeweils für jeden Wert, den wir in unserem Programm in einer Variablen speichern wollten, eine eigene Variable deklariert. Wenn wir zwei Ganzzahlen speichern wollten, haben wir zwei Variablen vom Typ int deklariert. Es ist offensichtlich, dass dieser Ansatz nur für eine kleine Anzahl Werte möglich ist. Wenn wir zum Beispiel die Telefonnummern von 100 Personen speichern möchten, müssten wir 100 Variablen vom gleichen Typ definieren.

Das Konzept, welches wir diese Woche anschauen ist Arrays. Dies macht es möglich, eine beliebige Anzahl Werte des gleichen Typs in einer Variablen zu speichern. Um genau verstehen zu können, wie Arrays in Java funktionieren, müssen wir uns auch das Konzept von Referenztypen anschauen. Dieses Konzept ist sehr wichtig in Java. Alle Datentypen, die wir in Zukunft anschauen werden, sind Referenzdatentypen. Wir werden sehen, dass der uns bekannte Datentyp String auch ein Referenzdatentyp ist. Die Theorie dieser Woche erlaubt Ihnen dann auch zu verstehen, weshalb wir Strings nicht wie Werte vom Type double oder int einfach mit dem Operator == vergleichen konnten, sondern die Methode equals nutzen mussten.

Theorie

Selbststudium

Bitte arbeiten Sie folgende Lerneinheiten vor den Präsenzveranstaltungen durch.

Literaturhinweise

Die oben beschriebenen Themen werden auch im Buch, Think-Java in Kapitel 7 (Arrays and references) behandelt.

Präsenzveranstaltung Donnerstag

In der Präsenzveranstaltung werden wir Arrays and einem praktischen Beispiel anwenden: dem Lösen von Sudokus. Dabei werden wir auch ein Algorithmisches Prinzip namens Backtracking kennenlernen.

Praxis

Präsenzveranstaltung Freitag

In dieser Veranstaltung gehen wir auf Feinheiten von Arrays ein und Vertiefen nochmals den Umgang mit Referenzdatentypen.

Übungen

Üben Sie die behandelten Themen ein, indem Sie das folgende Jupyter-Notebook bearbeiten:

Kernaussagen

  • Referenzdatentypen speichern, im Gegensatz zu primitiven Datentypen, nur eine Referenz auf die Daten.
  • Der Gleichheitsoperator == vergleicht ob es sich um das Gleiche Objekt handelt, und nicht ob der Inhalt gleich ist.
  • Beispiele von Referenzdatentypen sind Arrays und Strings
  • Arrays werden benutzt um eine fixe Anzahl von Werten von gleichem Typ zu speichern.
  • Arrays von Arrays sind einfach Arrays von Referenztypen und können entsprechend diesen Prinzipien verwendet werden.
  • Die erweiterte For-Schleife erlaubt ein Iterieren über alle Elemente eines Arrays
  • Strings sind als eine fixe Anzahl von Zeichen vom Typ Character repräsentiert und könnten daher als Array von Charactern repräsentiert werden. Java hat aber eine eigne, eingeschränkte, dafür effizientere Implementation.

Lernziele

Die Studierenden

  • kennen den Unterschied zwischen Referenzdatentypen und primitiven Datentypen und die Auswirkungen bei der Zuweisung und Vergleichen.
  • können Arrays von beliebigen primitiven und Referenztypen deklarieren und initialisieren.
  • können mehrdimensionale Arrays deklarieren, initialisieren und richtig einsetzen.
  • können erklären, was die Argumente der main-Methode bedeuten und wozu diese benutzt werden.
  • kennen die Vorteile der erweiterten for-Schleife und können diese einsetzen.
  • kennen die Einschränkungen von Strings gegenüber Arrays.