Programmieren ­ Vorlesung November 4, 2004 Inhalt Einfache Datentypen vs. Klassen Instanzen Methoden Statische und andere Methoden Eigene Klassen Instanzvariablen vs. Klassenvariablen Arrays Verzweigungen Schleifen Blöcke Rekursion Programmieren ­ Vorlesung November 4, 2004 Einfache Datentypen vs. Klassen Code: Beispiel.java Einfache Datentypen: int, double Klassen: String, Beispiel Programmieren ­ Vorlesung November 4, 2004 Instanzen Code: Beispiel.java Instanzen: i, j ... von int d ... von double text, textInGross, textGleich ... von String Objekte = Instanzen von Klassen text, textInGross, textGleich Erzeugen von Objekten: new Klasse(...) Programmieren ­ Vorlesung November 4, 2004 Methoden (1) Code: Beispiel.java Methoden: String toUpperCase() void println() static void main(String[] args) boolean equals(Object o) Programmieren ­ Vorlesung November 4, 2004 Methoden (2) Code: Hallo.java Methoden: static void sagHalloZu(String wem) static String allesKlein(String eingabe) String toLowerCase() void println() static void main(String[] args) Programmieren ­ Vorlesung November 4, 2004 Statische und andere Methoden Code: Hallo.java Statische Methoden: static void main(String args[]) static void sagHalloZu(String wem) static String allesKlein(String eingabe) Andere Methoden: String toLowerCase() Programmieren ­ Vorlesung November 4, 2004 Eigene Klassen (1) Klasse modelliert Konzept Beispiel: Klasse String – Konzept “Zeichenkette” Instanz einer Klasse (Objekt): Ein konkreter Vertreter des Konzepts Beispiel: String text; “rhabarber” Code: Studi.java Konzept “Studierende Person” Programmieren ­ Vorlesung November 4, 2004 Eigene Klassen (2) Code: Studi.java Konzept “Studierende Person” Was soll jede Instanz der Klasse können? Welche Eigenschaften hat jede Instanz der Klasse? Welche Informationen brauche ich am Anfang? Programmieren ­ Vorlesung November 4, 2004 Instanzvariablen vs. Klassenvariablen Code: Studi.java Instanzvariablen Eigenschaften jeder einzelnen Instanz Von Instanz zu Instanz verschieden Beispiel: Matrikelnummer Klassenvariablen Globale Informationen über das modellierte Konzept Beispiel: Anzahl Programmieren ­ Vorlesung November 4, 2004 Arrays (1) Array = Reihung von Objekten eines Typs Code: Gruppe.java Syntax: Typbezeichner[] Variablenname Beispiel: String[] args String[] teilnehmer Programmieren ­ Vorlesung November 4, 2004 Arrays (2) Zugriff: Beispiel: Variablenname[Index] args[0] teilnehmer[i] Achtung: Zählung ab 0! Länge: Beispiel: Variablenname.length args.length teilnehmer.length Programmieren ­ Vorlesung November 4, 2004 Verzweigungen Code: Studi.java if (bedingungTrifftZu) tuWas(...); if (bedingungTrifftZu) tuWas(...); else tuWasAnderes(...); switch (variableEinfachenTyps) { case konstante1: { tuEins(...); break; } case konstante2: { tuZwei(...); break; } default: tuWasAnderes(...); } Merken: Einmalige Ausführung, falls Bedingung Programmieren ­ Vorlesung November 4, 2004 Schleifen Code: Gruppe.java while­do: Erst Bedingung prüfen, dann ausführen do­while: Erst ausführen, dann Abbruch prüfen for­to: Zählschleife Merke: Also: Ggf. mehrfache Ausführung if (usw.) ist keine Schleife! Programmieren ­ Vorlesung November 4, 2004 Blöcke Code: Gruppe.java Zusammenfassen von Anweisungen In Methoden In Verzweigungen und Schleifen Auch: um Mehrdeutigkeiten zu vermeiden Programmieren ­ Vorlesung November 4, 2004 Rekursion Rekursion: Bei der Definition einer Klasse oder Lösung eines Problems wird die gleiche Klasse bzw. das gleiche Problem wiederverwendet. Code: Telefonkette.java Rekursive Methode Beispiel: boolean nachrichtAngekommen()