Imperative Programmierung
Inhaltsverzeichnis |
Einstieg
Die imperative Programmierung ist eines der ältesten Programmierparadigmen - was nicht bedeutet, dass sie heute ungebräuchlich ist. Ein imperatives Programm ist eine lineare Abfolge von Anweisungen. Ein Beipiel:
Programm: MachWasMitMeinenDateien
1 Datei suchen // Programmbeginn
2 Datei öffnen
3 Etwas in Datei suchen
4 Etwas aus Datei löschen
5 Etwas an Dateiende schreiben
6 Datei schließen // Programmende
Dies scheint recht simpel zu sein? Ist es auch. Programme können natürlich in der Praxis recht komplex werden, doch grundlegend ist es nichts weiter als das. Damit haben Sie das Grundkonzept der imperativen Programmierung verstanden. Hier ist der Kurs allerdings nicht zuende, sondern hat gerade erst begonnen. Ich werde mich bemühen, Ihnen alles in kleinen Häppchen zu servieren, da diese oft leichter verdaulich sind als komplexe Abschnitte. Beginnen wir nun also zunächst mit etwas Java.
Hello World!
Da Sie den grundlegenden konzeptionellen Ansatz nun verstanden haben, wollen wir etwas praktisches nachlegen. Beginnen wir nun ganz klassisch mit einem "Hello World!"-Programm. Klicken Sie hierzu auf "speichern & ausführen".
Der Text "Hello World!" wird in der Konsole angezeigt. Zur Erläuterung: Die Anweisung System.out.println("<mein text>"); ist dafür verantwortlich, Dinge in der Konsole auszugeben. Merken Sie sich diese gut - Sie werden sie des Öfteren verwenden müssen. Wichtig zu erwähnen ist noch das wohl Unscheinbarste - das Semikolon. Einzelanweisungen wie diese enden in Java immer mit einem Semikolon und bitte notieren Sie auch nie mehr als eine Anweisung pro Zeile, um Verwirrung zu vermeiden.</mein>
Ihr erstes eigenes Programm
Damit Sie nun aber auch selbst aktiv werden können, setzen Sie doch bitte im folgenden Eingabefeld das am Anfang gezeigte Beispiel so um, dass jede der sechs Anweisungen als Text ausgegeben wird.
Hilfe
Datei suchen
Datei öffnen
Etwas in Datei suchen
Etwas aus Datei löschen
Etwas an Dateiende schreiben
Datei schließen
Jetzt fragen Sie sich vielleicht, ob das nicht absolute Zeitverschwendung ist und Sie die Zeit nicht mit sinnvolleren Dingen verbringen sollten, da das Ausgeben von Text wohl nicht das ist, was Sie wollten, als Sie begonnen haben. Ich kann Sie beruhigen. Ihre Programme werden bald deutlich komplexer werden und weit mehr können als Text Zeile für Zeile auszugeben. Machen wir also weiter mit Variablen und Konstanten.
Variablen
Was ist das?
Wenn Sie in ihrem Programm Daten zwischenspeichern möchten, um z.B. später weiter mit ihnen zu arbeiten, können sie dies mit Hilfe von Variablen tun. Eine Variable ist ein Bezeichner für einen bestimmten Bereich im Arbeitsspeicher (RAM) Ihres Computers. Dort wird ein Wert gespeichert. Wenn sie die Variable abfragen, wird der Wert aus dem Speicher abgerufen und ggf. verändert, z.b. wenn Sie Ihr neustes Monatsgehalt zu Ihrem Kontostand addieren möchten. Dieser hardwarebezogene Aspekt sollte damit ausreichend besprochen sein. Interessanter für uns ist hingegen, was eine Variable im Programmcode ist, wie man eine erzeugt, mit ihr arbeitet und wie man sie wieder loswird, wenn man sie nicht mehr braucht. Um letzteres brauchen wir uns bei Java keine Gedanken zu machen. Das macht die Müllabfuhr (der Garbage Collector) für uns. Er sucht nach nicht mehr benötigten Bezeichnern und gibt deren Speicheraddressen selbstständig wieder frei, sodass andere Programme dort Daten ablegen können. C++-Programmierer haben es da deutlich schwerer. Sie müssen manuell Speicheraddressen allokieren und freigeben und wenn sie das nicht ordentlich tun, werden ihre Programme zu echten Speicherfressern.
Kommen wir nun dazu, was eine Variable im Code so alles hat:
- Name (den Sie bitte immer so wählen, dass daraus ersichtlich wird, um was es sich dabei handelt)
- Sichtbarkeit (global oder lokal; wir definieren momentan alles global - mehr zu lokalen Variablen, wenn Sie Kontrollstrukturen kennenlernen)
- Lebensdauer (eine Variable existiert maximal von Programmanfang bis Programmende - versuchen Sie also bitte nicht das Beispiel mit dem Kontostand tatsächlich in dieser Form zu realisieren)
- Wert (eine Variable muss immer einen Wert besitzen; versuchen Sie also nie ein Programm zu starten, bevor alle Variablen einen Wert zugewiesen bekommen haben, sonst erhalten sie nur eine Fehlermeldung)
- Typ (Java ist eine stark typisierte Sprache d. h. jede Variable bekommt einen Typ zugewiesen - welche Typen es gibt, erfahren Sie zu einem späteren Zeitpunkt)
Da wir nun auch mit diesem Informationshäppchen am Ende sind, stellt sich nur noch die Frage: Wie erzeuge ich eine Variable und wie kann ich mit ihr arbeiten? Diese Frage beantworten Ihnen die nachfolgenden, eher praxisorientierten Abschnitte.
Wie erzeuge ich eine Variable?
Eine Variable erzeugen Sie in zwei Schritten:
- Deklaration: Typ Name; - Dem Bezeichner wird entsprechend seines Typs ein bestimmter Anteil Arbeitsspeicher zugewiesen.
- Definition/Initialisierung: Name = Wert; - Dem Bezeichner wird ein Wert übergeben und im Arbeitsspeicher abgelegt.
Beides muss erfolgen! Sie können also keine Variable nur deklarieren oder nur definieren. Sie können beides in einer Anweisung, aber beides getrennt voneinander tun. Beide Varianten sind zulässig.
zusammen:
Typ Name = Wert;
getrennt:
Typ Name;
Name = Wert;
Damit Sie nun auch selbst aktiv werden können, gebe ich Ihnen nun noch eine Information: Um ganze Zahlen zu erzeugen, können Sie den Datentyp int (engl. integer; dt. ganze zahl) nutzen. Erzeugen Sie nun also eine ganze Zahl mit dem Wert "10" und geben Sie diese in der Konsole aus (Die Anführungszeichen entfallen!).
Hilfe
Typ Name = Wert;
int meineZahl = 10;
System.out.println(zahl);