Zum Hauptinhalt springen

Woche 5: Überladen, Objekte, chars & Strings

Nach dieser Woche können Sie …

  • das Überladen von Methoden erklären.
  • Probleme der realen Welt durch Zerschlagung in Teilprobleme programmatisch lösen.
  • die Funktionalität von fremden Quellcode erklären.
  • Fehler in Quellcode beheben.
  • den Datentyp char verwenden.
  • Methoden des Datentyps String verwenden.
  • Strings in Character und umgekehrt umwandeln.
  • erklären, was Objekte sind.
  • erklären, wo Objekte gespeichert sind.
  • == und equals richtig verwenden.

Wir schließen diese Woche das Thema Methoden ab, indem wir uns noch etwas genauer anschauen, wie wir denn größere Probleme systematisch lösen können.

Danach lernen wir die letzten, wichtigen Datentypen in Java kennen, mit denen wir Texte im Programm speichern und verändern können: chars und Strings. Dabei schauen wir uns an, was Objekte sind und steigen damit in das Thema der Objekt-orientierten Programmierung ein. Diese Art zu Programmieren ist heutzutage am verbreitesten und die grundlegenden Konzepte gelten nicht nur für Java, sondern auch für andere Programmiersprachen wie Python und C++.

Literatur

Falls Sie die Themen dieser Woche nochmal in der Literatur nachlesen wollen, können Sie sich z. B. folgende Kapitel in Java ist auch eine Insel ansehen:

Vorlesung

Überladen von Methoden

Freiwillige Zusatzaufgabe

Extrahieren Sie den Code zum bestimmen der Anzahl der Primzahlen und zur Berechnung des Arrays in jeweils eigene Methoden numberOfPrimesLessThan(int) und primesLessThan(int).

Objekte & Strings

Freiwillige Zusatzaufgabe

Machen Sie das Programm zum Invertieren der Bildfarben übersichtlicher, indem Sie eine Methode private static Picture negate(Picture picture) schreiben, die die Umrechnung in das invertierte Bild übernimmt.

zum Knobeln: Ergänzen Sie dann eine Methode private static Picture toGray(Picture picture) für die Umwandlung in Graustufen (Formel in den Folien) und zeigen Sie beide Bilder an. Achtung: Passen Sie mit dem Heap auf! Sie dürfen nicht auf dieselben Heap-Daten negate und toGray anwenden. (Es gibt verschiedene Lösungsstrategien.)

Lösungsvorschlag
Berühmte Persönlichkeiten der Informatik

Alan Turing lebte in der ersten Hälfte des 20. Jahrhunderts und hat für heute noch wichtige Grundlagen der theoretischen Informatik gelegt. Er hat das Modell der Turingmaschine entwickelt, die quasi ein sehr, sehr primitiver, abstrakter Computer ist, der aber alle „intuitiv berechenbaren“ Funktionen berechnen kann, die man sich ausdenken kann (damit werden Sie in der theoretischen Informatik noch viel Spaß haben ;)). Mit diesem Modell hat er die Unentscheidbarkeit des Halteproblems bewiesen. Eine praktische Schlussfolgerung ist, dass man kein Computerprogramm schreiben kann, dass für beliebige, andere Computerprogramme angeben kann, ob diese für jede beliebige Eingabe in endlicher Zeit ein Ergebnis berechnen. (Etwas kompakter ausgedrückt: Es gibt keine universelle Möglichkeit, die Fehlerfreiheit beliebiger Programme zu zeigen.)

Nach Turing ist der jährlich verliehene Turing Award benannt, der quasi der Nobel-Preis der Informatik ist. Sie werden noch von einigen berühmten Preisträger:innen hören.

Video zu Alan Turing von Prof. Harmeling (Login in Mediathek erforderlich)

Foto von Alan Turing