Objektorientierte Programmierung Einführung in JVM und Eclipse

Werbung
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Proinformatik-Vorlesung
Objektorientierte Programmierung
Einführung in JVM und Eclipse
Freie Universität Berlin
Gastdozent: Tilman Walther
Sommersemester 2011
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
1
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Inhalt
§  Aufbau der Java Platform
§  Eclipse als Entwicklungsumgebung für Java
§  Motivation, Projektverwaltung, nützliche Funktionen
§  Live-Coding und Debugging
§  Ausblick: Was sonst noch in Eclipse steckt
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
2
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Java SE Platform im Überblick
Quelle: http://download.oracle.com/javase/7/docs/
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
3
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Java SE Platform im Überblick – etwas übersichtlicher
Die Werkzeuge verwenden
wir zum Programmieren und
Dokumentieren. Sie sind nur
im JDK enthalten.
JVM und API werden als
Java Runtime Environment
zusammengefasst.
Sie bilden die normale JavaInstallation.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
4
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Verwenden der API-Dokumentation
Die Java-API verfügt über eine hervorragende Dokumentation, die im
WWW unter http://download.oracle.com/javase/7/docs/api/ gelesen
werden kann. Es lohnt sich sehr, sich damit vertraut zu machen.
Auch die allgemeine Dokumentation
http://download.oracle.com/javase/7/docs/ bietet Tutorials und
detaillierte Informationen zu nahezu jedem Aspekt von Java.
Ausgangspunkt ist die Package java.lang, in der sich die Basisklassen
befinden.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
5
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Integrierte Entwicklungsumgebungen
Bisher:
•  Schreiben von Quellcode im Editor
•  Ausführen des Compilers
•  Starten des Programms
→ relativ unkomfortabel
Eine IDE (Integrated Development Environment) ist eine Anwendung zur
Programmentwicklung. Sie kombiniert einen Editor mit speziellen Funktionen wie Syntaxhervorhebung mit zusätzlichen Werkzeugen und integriert den Compiler. Dadurch wird der Entwicklungsprozess vereinfacht
und beschleunigt.
Bekannte Entwicklungsumgebungen für Java sind Eclipse, NetBeans,
JBuilder und IntelliJ IDEA.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
6
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
7
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Einführung in die Software-Entwicklung mit Eclipse
Eclipse ist eine in Java
geschriebene, sehr flexible
Entwicklungsumgebung, die
nahezu beliebig an die eigenen
Bedürfnisse angepasst werden
kann. Dazu werden Plugins
verwendet, aus denen sich
Eclipse zusammensetzt.
Gleichzeitig kann Eclipse als
Basis für eigene Programme
verwendet werden.
Eclipse kann als Entwicklungsumgebung für viele verschiedene Programmiersprachen
eingesetzt werden. Für die
Entwicklung von Java-Programmen ist es eine der bekanntesten IDEs.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
8
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Eclipse als Entwicklungsumgebung für Java
Terminologie
Eclipse verwaltet Projekte in Verzeichnissen, die im Workspace abgelegt
sind. Dabei handelt es sich ebenfalls um ein Verzeichnis.
Die Workbench ist in verschiedene Views unterteilt. Für verschiedene
Aufgaben gibt es verschiedene Perspektiven.
Durch Plugins können neue Funktionen, Views und Perspektiven
hinzugefügt werden.
Funktionen
Die Java-IDE ist enthält einen leistungsstarken Editor mit SyntaxHervorhebung, Code-Folding, Formatierung, Navigations- und
Vervollständigungs-Funktionen. Hinzu kommen Refactoring-Funktionen,
Code-Generatoren und ein Debugger.
Zum Kennenlernen der verschiedenen Werkzeuge und Funktionen
vollziehen wir die Entwicklung des Fußball-Managers noch einmal nach.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
9
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Live-Coding-Fahrplan
Java-Programme mit Eclipse entwickeln
§  Eclipse starten, Workspace anlegen
§  Views und Perspektiven
§  Konfigurieren der Workbench
§  Anlegen eines Projekts
§  Erstellen von Klassen
§  Generieren von Code
§  Programme starten, Übergabe von Parametern
§  weitere Funktionen:
API-Dokumentation verwenden,
automatisches Formatieren,
Versionsdatenbank
Professionelles Entwickeln
§  Refactoring
§  Dokumentieren mit Javadoc
§  Verwenden des Debuggers
§  Versionierungssysteme (CVS und Subversion)
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
10
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Eclipse starten, Workspace anlegen
Eclipse kann kostenlos unter www.eclipse.org heruntergeladen werden.
Wir benötigen nur die kleine Version „Eclipse IDE für Java Developers“. Da
die Entwicklungsumgebung selbst in Java programmiert ist, muss auf dem
Computer Java installiert sein, um Eclipse starten zu können.
Sobald wir das heruntergeladene Archiv entpackt haben, kann Eclipse
gestartet werden. Als erstes werden wir aufgefordert, ein WorkspaceVerzeichnis festzulegen. In diesem werden sämtliche Projekte gespeichert.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
11
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Der erste Start
Beim ersten Start wird zunächst ein Willkommens-Bildschirm angezeigt,
von dem aus Beispiele und Tutorials verlinkt sind, mit denen man Eclipse
besser kennen lernen kann. Ein näherer Blick lohnt sich!
Als Eclipse-Profis in Eile wechseln wir aber direkt zur Workbench...
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
12
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Die Eclipse Workbench
Die unbenutzte Workbench präsentiert sich recht unspektakulär. Die
richtige Perspektive zur Java-Entwicklung ist bereits aktiv (Auswahl oben
rechts). Die Oberfläche setzt sich aus Fenstern für die verschiedenen
Funktionen zusammen, sog. Views. Diese können verschoben und mit
einem Doppelklick maximiert werden. Um bessere Übersicht zu
bekommen, schließen wir unbenötigte Views und sortieren etwas um.
Perpektiven und Views lassen sich über das Window-Menü öffnen.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
13
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Anlegen eines Projekts
Über File ð New ð Java Project
legen wir ein neues Projekt an.
Wir geben ihm den Namen
Fußballmanager und schließen
die Erstellung mit Finish ab.
Das neue Projekt erscheint
oben links im Package Explorer
und kann geöffnet werden.
Eclipse hat ein Verzeichnis mit
der Bezeichnung src für unsere
Quelldateien angelegt. In
diesem erstellen wir über File
ð New ð Class eine neue JavaKlasse.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
14
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Eine neue Klasse in einer Package anlegen
Die neue Klasse trägt den Namen Person.
Um unsere Klassen übersichtlich zu
strukturieren, legen wir gleichzeitig eine
neue Package namens de.javauni.soccer an.
Packages sind Verzeichnisse, in denen JavaKlassen abgelegt werden. Sie werden
verwendet, um die einzelnen Teile eines
Programms voneinander zu trennen. So
könnten die Klassen für die Anzeige in ein
Package namens visualization gelegt werden,
während die Klassen zur Berechnung der
Spiel-Ergebnisse in simulation liegen. Es ist
üblich, die Package-Verzeichnisse unterhalb
eines Basis-Package zu erzeugen, das aus
einer umgekehrten WWW-Adresse besteht,
die im Idealfall weitere Informationen zum
Programm bereitstellt.
Da wir Wert auf Dokumentation legen,
lassen wir Kommentarblöcke zum Ausfüllen
gleich mit generieren (letzte Zeile).
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
15
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Eine neue Klasse in einer Package anlegen
Unsere erste Klasse! Wir kommentieren die Klasse im Javadoc-Format (dazu später
mehr) und füllen den Rumpf mit Code. Nach Eingabe der Variablen kann der
Konstruktor über Source ð Generate Constructor using Fields… generiert werden.
Auch Getter und Setter können von Eclipse erzeugt werden.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
16
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Programme starten
Um eine Klasse mit einer Main-Funktion zu starten, wählt man im Menü Run ð Run
As ð Java Application. Dadurch wird eine neue Run Configuration erzeugt. Möchte
man beispielsweise ein Programm mit Parametern starten, müssen diese in der
Konfiguration eingetragen werden. Die Konfigurationen sind auch über die grüne
Schaltfläche in der Werkzeugleiste erreichbar.
Die Ausgabe des Programms wird im View Console am unteren Rand der
Workbench angezeigt:
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
17
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
18
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Schöne neue Welt…
Wir programmieren unseren Fußballmanager. Dabei lernen wir u.a.
folgende Funktionen von Eclipse kennen:
§  Syntax-Hervorhebung und Markierungen
§  Code-Completion mit der magischen Tastenkombination Strg+Leertaste
§  „Quick-Fixes“ an allen möglichen Stellen mit Strg+1
§  anzeigen aller verfügbaren Shortcuts mit Strg+Shift+L
§  automatisches Kompilieren im Hintergrund
§  Code-Folding
§  automatisches Formatieren von Code
§  Hilfe beim Import von Klassen
§  Code-Generatoren für Konstruktoren, Getter und Setter
§  Generieren von Kommentaren im Javadoc-Format
§  Anzeige von Fehlern im Code (und Tipps zu Behebung von Eclipse)
§  Kommentar-Tags für die Aufgabenliste (TODO, XXX und FIXME)
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
19
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Refactoring und Aufrufen der API-Dokumentation
Eclipse bietet Werkzeuge zum Überarbeiten der Programm- und Klassenstruktur an.
Damit können Variablen, Methoden und Klassen umbenannt und verschoben
werden, ohne dass die Programmlogik zerstört wird. Ebenfalls möglich ist das
„Entzerren“ durch Extraktion von Superklassen und einiges mehr. Diese Funktionen
erreicht man über das Hauptmenü oder mit einem Rechtsklick auf das betreffende
Element.
Mit der Tastenkombination
Shift+F2 lässt sich die APIDokumentation zu einer
Klasse oder Methode direkt
im Browser öffnen.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
20
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Eigene Dokumentation mit Javadoc generieren
Mit Javadoc können wir eigene Dokumentationen generieren, wenn wir unsere
Kommentare in der entsprechenden Syntax verfassen. Mittels @-Tags werden
Informationen zu Parametern, Rückgabewerten, etc. angegeben.
Das Programm lässt sich direkt aus Eclipse über Project ð Generate Javadoc
aufrufen. Im erscheinenden Dialog legen wir fest, bis zu welcher Sichtbarkeitsstufe
(public, protected…) Variablen und Methoden dokumentiert werden sollen. Die
HTML-Dateien werden in einem Unterverzeichnis erzeugt des Projektordners. Auf
diese Weise lässt sich aus sauber kommentiertem Code im Handumdrehen eine gut
lesbare Dokumentation extrahieren. Ab jetzt können wir auch zu unseren eigenen
Klassen und Methoden mit Shift+F2 die Dokumentation aufrufen.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
21
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Alte Versionen von Klassen wiederherstellen
Hat man eine Klasse „totprogrammiert“ oder gelöscht, lässt sie sich aus der Local
History wiederherstellen. Ebenfalls möglich ist der direkte Vergleich von zwei
Versionen. In der Standard-Einstellung werden die Zwischenschritte sieben Tage
lang aufbewahrt.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
22
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Verwenden des Debuggers
Bisher haben wir unsere Programme durch strategisch platzierte Ausgaben von Fehlern
befreit. Dieser Ansatz ist ziemlich aufwändig und langsam.
Eclipse enthält einen Debugger für Java, mit dem man Programme Anweisung für
Anweisung ausführen und nachvollziehen kann. Der aktuelle Inhalt von Variablen lässt
sich jederzeit überprüfen. Damit große Programme nicht jedes Mal von Anfang bis Ende
nachvollzogen werden müssen, lassen sich im Editor Stop-Marken setzen, an denen die
Ausführung des Programms im Debug-Modus anhält.
Der Debugger stellt eine eigene Perspektive bereit. Hat das Programm an einer StopMarke gehalten, lässt sich der weitere Verlauf mit den Step-Befehlen nachvollziehen (F5,
F6, F7). Der aktuelle Inhalt der sichtbaren Variablen wird in einer eigenen View oben
rechts angezeigt. Auch komplexe Ausdrücke können in jedem Schritt überprüft werden.
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
23
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Ausblick I: Was sonst noch in Eclipse steckt
Es gibt noch viele weitere Funktionen und Plugins, die hier leider keinen
Platz mehr finden. Zumindest erwähnt werden sollen noch:
§  Einbindung von Versionierungsystemen wie CVS und Subversion
§  Aufgabenmanagement mit Mylyn
§  Entwicklung von Programm-Oberflächen mit Matisse
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
24
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Ausblick II: Was sich mit Eclipse sonst noch anfangen lässt
Eclipse wird hauptsächlich als Entwicklungsumgebung, bietet durch
seinen modularen Aufbau aber noch viel mehr Möglichkeiten:
§  Erweiterung durch eine riesige Zahl von verfügbaren Plugins
§  Entwicklung von eigenen Plugins
§  Verwendung der SWT-Bibliothek zur Entwicklung von Programm-
Oberflächen
§  Verwendung von Equinox als Basis für Programme mit Plugin-Funktion
§  Entwicklung von eigenen Programmen auf Basis der Rich Client
Platform
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
25
Proinformatik: Objektorientierte Programmierung
Freie Universität Berlin
Viel Spaß mit Eclipse!
Vielen Dank!
Sommersemester 2011
Prof. Dr. Marco Block-Berlitz (Mediadesign Hochschule in Berlin)
26
Herunterladen