Fakultät Informatik, HFU Brückenkurs Programmieren Java‐Programmierung auf der Konsole / unter Eclipse Allgemeine Begriffe Programmiersprache: künstliche Sprache zur Notation von Programmen Programm: Vor der Ausführung: "Rechenvorschriften", die von einem Rechner ausgeführt werden können Umwandlung des Programms in eine für den Prozessor verständliche Form durch Interpretieren oder Kompilieren Interpretieren: • • • • Programm ist direkt ausführbar, Programm wird bei der Ausführung in den Maschinencode übersetzt, Programm ist portabel (Plattform‐unabhängig), geringe Geschwindigkeit der Ausführung. Beispiel: Shell, Shell‐Skripte, Perl Kompilieren: • • • • • Programm wird vor der Ausführung in den Maschinencode übersetzt, Programm wird für spezielle Plattform / Prozessor übersetzt, Änderung im Quellcode erfordert neue Übersetzung, Portierung auf andere Plattform erfordert Übersetzung, hohe Geschwindigkeit bei der Ausführung Beispiel: C++ Java Virtual Maschine für Java‐Programme: • • • Quellcode wird kompiliert in eine spezielle Maschinensprache für JVM (Java Virtual Maschine), durch JVM Plattform‐Unabhängigkeit, während der Laufzeit Interpretation der speziellen Maschinensprache zur Ausführung auf der jeweiligen Hardware API (Application Programming Interface) Schnittstelle zu Programmbibliotheken (vordefinierte Programmteile, Packages), wie z.B. für • • • • • Ein‐ und Ausgabe, Mathematische Funktionen, GUI (Graphical User Interface), Netzwerkkommunikation, Java: vordefinierte Klassen in Packages JRE (Java Runtime Environment) besteht aus • • der JVM und der API 1 2 Brückenkurs Programmieren Fakultät Informatik, HFU Bezeichner • sind die Namen für Variablen primitiver Datentypen, Konstanten, Objekte, Klassen, Attribute, Methoden. Namenskonventionen für Bezeichner • • • • • • Buchstabe oder Unterstrich (_) als 1. Zeichen; zulässig, aber unüblich sind Währungssymbole, beliebige Zeichen aus Buchstaben, Unterstrich und Zahlen können folgen, in Java und C++ sind Buchstaben Case sensitive (Summe ≠ summe) keine Schlüsselwörter wie if, while, for, char, int, … Java verwendet zwar den Unicode, man sollte trotzdem auf Umlaute und ß verzichten, Bezeichner sollen für sich sprechen, d.h. die Bedeutung verdeutlichen. Zusätzliche empfohlene Namenskonventionen für Java • • • • • • Klassennamen sollen Substantive sein, mit einem Großbuchstaben beginnen und keine Unterstriche enthalten (Beispiel: String, Kreis, Konto, …). Besteht der Klassenname aus zwei Substantiven, so wird der 1. Buchstabe des 2. Substantives auch groß geschrieben (Beispiel: HelloWorld, GiroKonto, …). Konstanten werden vollständig groß geschrieben, Einzelworte werden durch Unterstrich getrennt (Beispiel: MAXIMUM, VORGABE_WERT, …). Variablen, Methoden und Datenelemente beginnen mit einem Kleinbuchstaben. Sind sie aus mehreren Begriffen zusammengesetzt, so beginnt jeder weitere Begriff mit einem Großbuchstaben (Beispiel: summe, zaehler, anzeigen(), meinKonto, kreisFlaeche). Methoden sollen nach Möglichkeit mit einem Verb benannt werden (Beispiel: remove(), berechneFlaeche(), sucheMaximum(), …). Abfragemethoden weichen oft davon ab und heißen stattdessen beispielsweise: isEmpty(), isUpperCase(), isLetterOrDigit() … Kennzeichnung von Kommentaren //Dies ist ein Kommentar bis zum Zeilenende /* Dies ist ein mehrzeiliger Kommentar */ /** Dies ist ein doc comment – automatisches Extrahieren über javadoc für Online-Dokumentationen ist möglich */ Dateinamen in Java Der Dateiname muss mit dem Klassennamen übereinstimmen (Groß – und Kleinschreibung beachten) und als Endung .java erhalten. Fakultät Informatik, HFU Brückenkurs Programmieren 3 Programmieren auf der Konsole Aufgabe 1: • Texteditor öffnen und das erste Java‐Programm eingeben: class HelloWorld { public static void main (String[] args) { System.out.println("Hello World!"); } } • Programm abspeichern unter der Name muss identisch mit dem Klassennamen sein HelloWorld.java • Kompilieren des Programms auf der Konsole über das Kommando javac HelloWorld.java erzeugt wird HelloWorld.class • Ausführen des Programms über java HelloWorld die Dateiendung .class wird nicht angegeben Unter WinXP vor dem Kompilieren und Ausführen über • • Start -> Ausführen -> cmd die Konsole öffnen und mit cd in das Verzeichnis wechseln, unter dem HelloWorld.java abgelegt wurde. Aufgabe 2: Gebt das folgende Programm ein, das n! berechnet, speichert es richtig ab, übersetzt es und testet es. Achtung: beim Aufruf n mit übergeben, z.B. java fakultaet 5 /** Programm berechnet n!; n muss ganzzahlig sein und darf bis 20 gehen @author mein Name @version 1.0 */ public class Fakultaet { public static void main (String[] args) { byte n = Byte.parseByte(args[0]); //liest n ein byte i = 1; long fakultaetVonN = 1; while (i<=n) { fakultaetVonN = fakultaetVonN * i; i++; } System.out.println(n + "! = " + fakultaetVonN); } } Da auch eine Java‐Dokumentation erzeugt werden soll, muss die Klasse Fakultaet public sein. Hier ist ein Autor und eine Version benannt, dieses kann in der Dokumentation mit ausgegeben werden. Erzeugt die Dokumentation über: javadoc –author –version Fakultaet.java 4 Brückenkurs Programmieren Fakultät Informatik, HFU Programmieren unter Eclipse (Entwicklungsumgebung für Software) • Eclipse starten eclipse Start ‐> Alle Programme ‐>Eclipse • unter Unix/Linux unter Windows Workspace definieren (Verzeichnis, unter dem die "Projekte" abgelegt werden) Existiert der Workspace noch nicht, so erscheint das Eclipse‐Begrüßungsfenster und • der Workbench (Arbeitstisch) wird über das entsprechende Icon geöffnet. Das Begrüßungsfenster erscheint nicht mehr, wenn der Workspace bereits existiert. Eclipse‐ Begrüßungsfenster: Workbench: Fakultät Informatik, HFU Brückenkurs Programmieren Alle Dateien (Klassen) werden unter einem Projekt zusammengefasst: • Menü File->New->Project->Java Project bzw. Menü File->New->Java Project • Projektnamen vergeben Es wird ein neues Verzeichnis mit dem Projektnamen angelegt, das Projekt erscheint im Workbench. Nun müssen wir die Klassen für unser Projekt anlegen (hier ist es nur eine). • Mit der rechten Maustaste auf den Projektnamen klicken, New ‐> Class auswählen. • • Es erscheint das New Java Class‐Fenster: Klassennamen vergeben. Da wir eine ausführbare Klasse brauchen, im Fenster die Option public static void main (String[] args) anklicken (das erleichtert den Schreibaufwand) und anschließend Finish drücken. Das Programm‐Gerüst erscheint im Eingabefenster des Workbench. 5 6 • • Brückenkurs Programmieren Fakultät Informatik, HFU Programm fertig eingeben und mit Menü File -> Save abspeichern -> src/HelloWorld.java. Ausführen über Menü Run ‐> Run as ‐> Java Application Das Programm wird übersetzte -> bin/HelloWorld.class und ausgeführt. Die Programmausgabe erscheint im Anzeigefenster. Aufgabe 3: Gebt das Programm aus Aufgabe 2 in Eclipse ein und führt es aus (Achtung: erst Workspace und Projekt anlegen). Achtung: Run as Java Application wird einen Fehler bringen, da das Programm einen Eingabeparameter erwartet. Programm starten über Menü Run->Run Configurations ... bzw. Run->Run ..., dann im Fenster Arguments den Wert für n eingeben und Run drücken. Debuggen Damit der Debugger etwas anzeigt, ergänzen wir unser Fakultätsprogramm durch eine Ausgabezeile innerhalb der Schleife: while (i<=n) { fakultaet = fakultaet * i; System.out.println(i + "! = " + fakultaet); i++; } • Jetzt setzen wir einen Breakpoint auf die Zeile, an der gestoppt werden soll, indem wir einen Doppelklick auf dem blauen (gelben) Balken links im Eingabefenster machen (Zeile wird nicht mehr ausgeführt): • Der Debugger wird über das Käfer‐Icon gestartet: Fakultät Informatik, HFU • Brückenkurs Programmieren 7 Über das Resume‐Icon (grüner Pfeil)kann nun das Programm gedebugged werden. • • • Den Debugger stoppt man über das Terminate‐Icon (rotes Quadrat). Über die Java‐Perspective kehrt man ins Bearbeitungsfenster zurück. Breakpoints werden über Doppelklick wieder entfernt. Erstellen der Java‐Dokumentation • • • Menü Project->Generate Javadoc … Pfad des Javadoc‐Kommandos eintragen (es liegt unter jdk/bin) und gewünschtes Projekt auswählen, Finish drücken Unter dem Projekt wird der Ordner doc angelegt, der die html‐Dateien der Java‐Dokumentation enthält.