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.
- Arrays (Artikel)
- Referenzdatentypen (Video)
- Kopieren und vergleichen von Arrays (Video)
- Mehrdimensionale Arrays (Artikel)
- Die Erweiterte for-Schleife (Artikel)
- Strings und Arrays (Artikel)
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.