1. Der Einstieg in Java Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie • • • • • wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung von Java-Programmen kennen, einfachste Java-Programme erstellen können und Regeln zur Formatierung von Java-Quelltext beherrschen ( Übungen). Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 10 1. Der Einstieg in Java Was heißt Programmieren? Was heißt Programmieren? Ein Programm ist ein Algorithmus, der in einer Programmiersprache formuliert ist. Arten von Programmiersprachen: • Maschinensprache ist eine Sprache, die der Prozessor des Rechners direkt versteht. ☞ Notation aus Nullen und Einsen, schwer lesbar • Assembler: Jedem binären Maschinencode ist für die leichtere Lesbarkeit ein Assemblercode aus Buchstaben und Ziffern zugeordnet. ☞ Abhängigkeit vom Prozessortyp • Höhere bzw. problemorientierte Programmiersprachen: Es stehen Operationen zur Verfügung, die nicht eins-zu-eins auf eine Operation des Prozessors abgebildet werden können. ☞ einfachere Programmierung, nichttriviale Übersetzung in Maschinensprache notwendig Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 11 1. Der Einstieg in Java Was heißt Programmieren? • Ein Übersetzer, der problemorientierte Programme in maschinennahe Programme transformiert, heißt Compiler. • Werden Programme nicht vollständig übersetzt und später ausgeführt, sondern Anweisung für Anweisung übersetzt und später ausgeführt, spricht man von einem Interpreter. • Der Java-Compiler übersetzt das sogenannte Quellprogramm in Java-Bytecode, der unabhängig von einem bestimmten Prozessor ist. • Der Java-Interpreter analysiert den erzeugten Bytecode schrittweise und führt ihn aus. ☞ virtuelle Maschine (VM), Plattformunabhängigkeit Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 12 1. Der Einstieg in Java Was heißt Programmieren? Java Quellprogramm Java Compiler Java Bytecode Java VM für Windows ausführbares Windows Programm Java VM für Linux ausführbares Linux Programm Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 Java VM für Mac OS X ausführbares Mac OS X Programm 13 1. Der Einstieg in Java Was heißt Programmieren? • Programmieren bedeutet, unter Einsatz einer Programmiersprache ein gegebenes Problem zu lösen. • Hierfür sind eine Reihe von Arbeitsschritten notwendig, z.B.: Analyse, Modellierung, Codierung, Compilierung, Ausführung • Das Schreiben des Programmtextes ist die Codierung. Dies geschieht unter Einsatz eines Texteditors. • Meistens weisen Programme nach der erstmaligen Codierung Fehler auf. Dies können sein: – Syntaxfehler (Fehler in der Grammatik) – Semantikfehler (Das Programm macht nicht das, was es soll.) Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 14 1. Der Einstieg in Java Was heißt Programmieren? Problem Welches Problem ist zu lösen? Was erwarte ich von meiner Lösung? Analyse / Modellierung algorithmische Beschreibung Wie lässt sich das Problem lösen? Programmierung / Codierung Programm Wie bringe ich meine Idee dem Rechner bei? Z.B. durch ein Java−Programm? ausführbares Programm Wie muss der ausführbare Code aussehen? Z.B. Java−Bytecode oder Maschinencode? Übersetzung / Compilierung Ausführung / Interpretierung Problemlösung Ist das Problem gelöst? Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 15 1. Der Einstieg in Java Mein erstes Java-Programm Mein erstes Java-Programm public class Berechnung { public static void main(String[] args) { int i; i = 3 + 4; System.out.println(i); } } Das Programm berechnet 3 plus 4 und gibt das Ergebnis aus! ✎ Compilierung und Ausführung Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 16 1. Der Einstieg in Java Mein erstes Java-Programm Ausdruck, Variable, Zuweisung i = 3 + 4; Rechts vom Gleichheitszeichen findet eine Berechnung statt. Solch eine Berechnungsvorschrift heißt Ausdruck. Zu einem Ausdruck geh ört immer ein Wert. Links steht der Name einer Variablen (hier i). Dieser wird der Wert des Ausdrucks zugewiesen. Man bezeichnet dies als Zuweisung. Eine Zuweisung ist eine spezielle Form einer Anweisung. Einfache Anweisungen werden durch ein Semikolon (;) abgeschlossen. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 17 1. Der Einstieg in Java Mein erstes Java-Programm Ganze Zahlen und Gleitkommazahlen Java unterscheidet zwischen ganzen Zahlen und Gleitkommazahlen. Beispiele für ganze Zahlen: 0 1 -1 2147483647 Beispiele für Gleitkommazahlen: 0.0 42.314159 1.0 -3.7E2 -1.0 1.9E-17 2147483647.0 .12345 Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 18 1. Der Einstieg in Java Mein erstes Java-Programm Variablendeklaration int i; Damit geben wir bekannt, daß wir eine Variable mit dem Namen i verwenden wollen. Wir bezeichnen dies als Variablendeklaration. In Java gilt streng: Jede Variable muß vor ihrer Verwendung deklariert werden (declare before use). Ebenfalls gilt streng: Zu jeder Variablen gehört ein Datentyp. Hier int, d.h. ganze Zahlen (genauer ganze Zahlen zwischen −231 und 231 − 1). Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 19 1. Der Einstieg in Java Mein erstes Java-Programm Methodenaufruf System.out.println(i); System.out.println ist der Name einer Methode (ein Unterprogramm), mit der wir Text und Zahlen auf dem Bildschirm ausgeben können. In Klammern folgt nach dem Methodenname das, was wir der Methode übergeben wollen. Hier: der Wert der Variablen i. Die Methode System.out.println ist flexibel einsetzbar. Statt einer Zahl k önnen wir auch Text ausgeben lassen: System.out.println("Das Ergebnis ist: "); System.out.println(i); Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 20 1. Der Einstieg in Java Mein erstes Java-Programm Will man beides in einer Zeile ausgeben, können wir System.out.print("Das Ergebnis ist: "); System.out.println(i); oder System.out.println("Das Ergebnis ist: " + i); verwenden. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 21 1. Der Einstieg in Java Mein erstes Java-Programm Blöcke Java nutzt zur Strukturierung des Quelltextes sogenannte Bl öcke. Ein Block wird durch “{” und “}” eingeschlossen. Unser Beispielquelltext hat zwei Blöcke: 1. Die Klasse Eine Klasse ist in Java die oberste Struktureinheit. Sie sieht folgendermaßen aus: public class Klassenname { . . . } Wichtig: Der Dateiname, in der Sie den Quelltext der Klasse speichern, muß Klassenname.java lauten. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 22 1. Der Einstieg in Java Mein erstes Java-Programm 2. Die Hauptmethode Methoden sind Struktureinheiten unterhalb von Klassen. Jede Klasse, die ein ausführbares Programm darstellen soll, muß eine Methode mit dem Namen main besitzen: public static void main(String[] args) { . . . } Den Rest der ersten Zeile der Methode müssen Sie bis auf weiteres genau so wie hier angegeben verwenden. ✎ Erläuterungen zu Übersetzung und Ausführung. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 23 1. Der Einstieg in Java Grundelemente eines Java-Programms Kommentare Wenn wir (oder andere) nach längerer Zeit einen Java-Quelltext analysieren, werden wir uns u.U. nicht mehr an den Sinn jeder Anweisung erinnern. Deshalb ist die Kommentierung von Programmen von großer Wichtigkeit. Java bietet hierfür drei verschiedene Möglichkeiten: • Zeilenkommentar a = b + c; // dies ist ein Kommentar • Mehrzeiliger Kommentar /* Kommentar ... mehr Kommentar ... letzte Kommentarzeile ... */ Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 24 1. Der Einstieg in Java Grundelemente eines Java-Programms • Dokumentationskommentar Solche Kommentare beginnen mit /** und enden mit */. Es sind spezielle Kommentare, aus denen mit dem Programm javadoc eine HTML-Dokumentation in standardisierter Form erzeugt werden kann. /** * Dieses Programm berechnet die Lottozahlen von naechster * Woche. Dabei erreicht es im Schnitt eine Genauigkeit * von 99,5% * * @author Hans Mustermann * @date 1998-10-26 * @version 1.0 */ Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 25 1. Der Einstieg in Java Grundelemente eines Java-Programms Bezeichner Wir werden später oft in die Verlegenheit kommen, irgendwelchen Dingen Namen geben zu müssen, z.B. einer Variablen als Platzhalter, um eine Rechnung mit verschiedenen Werten durchführen zu können. In Programmiersprachen heißen solche Namen Bezeichner. Bezeichner bestehen aus: • • • • Buchstaben a,b,...,y,z,A,...,Z dem Unterstrich dem Dollarzeichen $ Ziffern 0,...,9 Darüberhinaus gelten folgende Regeln: ☞ Bezeichner müssen mit einem Buchstaben, dem Unterstrich oder dem Dollarzeichen beginnen. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 26 1. Der Einstieg in Java Grundelemente eines Java-Programms ☞ Reservierte Wörter dürfen nicht als Bezeichner verwendet werden. Gültige Bezeichner (in Java): • • • • Hallo Welt _H_A_L_L_O_ hallo123 hallo 123 Keine gültigen Bezeichner (in Java) sind: • • • • 101Dalmatiner beginnt mit einer Ziffer Das war’s Das Zeichen ’ ist nicht erlaubt Hallo Welt Leerzeichen ist nicht erlaubt class ist ein reserviertes Wort Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 27 1. Der Einstieg in Java Grundelemente eines Java-Programms Literale Ein Literal bzw. eine Literalkonstante beschreibt einen konstanten Wert, der sich innerhalb eines Programms nicht ändern kann. Literale haben, abhängig von ihrem Typ, vorgeschriebene Schreibweisen: • • • • • • ganze Zahlen (z.B. 23 oder -166), Gleitkommazahlen (z.B. 3.14), Wahrheitswerte (true und false), einzelne Zeichen (z.B. ’a’), Zeichenketten (z.B. "Hallo Welt"), das sogenannte Null-Literal für Referenzen, dargestellt durch die Literalkonstante null. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 28 1. Der Einstieg in Java Grundelemente eines Java-Programms Reservierte Wörter und Schlüsselwörter Schlüsselwörter sind Wörter, die mit einer vordefinierten symbolischen Bedeutung belegt sind. Solche Schlüsselwörter dürfen ebenso wie die Literalkonstanten true, false und null nicht als Bezeichner verwendet werden. abstract case continue extends goto int package short synchronized try assert catch default final if interface private static this void boolean char do finally implements long protected strictfp throw volatile Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 break class double float import native public super throws while byte const else for instanceof new return switch transient 29 1. Der Einstieg in Java Grundelemente eines Java-Programms Trennzeichen und Interpunktionszeichen Zu welcher Pferderasse gehören Blumentopferde? Heißt es der, die oder das Kuhliefumdenteich? Auch der Java-Compiler muß in der Lage sein, einzelne Bezeichner, reservierte Wörter und Literale voneinander zu trennen. Hierzu dienen: • • • • • • Leerzeichen Zeilenendezeichen Tabulatorzeichen Kommentare Operatoren (z.B. + oder *) Interpunktionszeichen . , ; ) ( { } [ ] Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 30 1. Der Einstieg in Java Grundelemente eines Java-Programms Operatoren und Interpunktionszeichen haben in Java eine besondere Bedeutung. Sie dürfen daher nur dort eingesetzt werden, wo sie hingeh ören. Bezeichner, reservierte Wörter und Literale müssen durch mindestens eines der obigen Symbole voneinander getrennt werden. Hierbei ist es in Java eigentlich egal, welche Trennzeichen man verwendet und wie viele davon. Die Zeile public static void main (String[] args) ist äquivalent zu den folgenden Zeilen: public static/* */void main( // ... String[] args) Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 31 1. Der Einstieg in Java Grundelemente eines Java-Programms Operatorsymbole Operatoren sind spezielle Symbole, die dazu dienen, jeweils bis zu drei unterschiedliche Werte — die Operanden — zu einem neuen Wert zu verknüpfen. Wir unterscheiden die Operatoren nach der Anzahl ihrer Operanden: monadische Operatoren sind Operatoren, die nur einen Operanden ben ötigen. Beispiele: ++ oder -dyadische Operatoren vernüpfen zwei Operanden. Beispiele: +, - oder == triadische Operatoren verknüpfen drei Operanden. Davon gibt es in Java nur einen: signum = x >= 0 ? 1 : -1; Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 32 1. Der Einstieg in Java Grundelemente eines Java-Programms import-Anweisung Viele Dinge, die wir in Java benötigen, befinden sich nicht im Kern der Sprache, sondern sind in Klassen ausgelagert, die sich wiederum in Paketen befinden. Dies gilt z.B. für die Bildschirmausgabe oder mathematische Funktionen wie Sinus oder Cosinus. Die meisten solcher Klassen müssen explizit importiert werden. Hierzu dient die import-Anweisung. Beispielsweise sorgt die Anweisung import java.io.*; dafür, daß alle Klassen des Pakets java.io importiert werden und somit für die Programmierung benutzt werden können. ☞ import-Anweisungen stehen vor der Klassendefinition. Peter Becker, Programiersprache Java — FH Bonn-Rhein-Sieg, SS 07 33