Eclipse und Debugging Ein erster Blick Starten mittels /usr/bin/eclipse oder auch Applications > Programming Legt workspace in eurem Homedir an! CoMa SS 09 Wissenswertes... CoMa II SS 09 1/24 CoMa II SS 09 2/24 Anlegen von Projekten Mächtige IDE (Integrated Development Environment) für Java und andere Sprache Unterstützung bei der täglichen Programmierarbeit wie Anlegen von Paketen, Klassen, Javadokumentation usw. Dateien, Dokumente, kompilierter Code usw. müssen zu einem Projekt gehören Eclipse unterstützt Programmieren, Erstellen von Dokumentation, Versionierung, Plug-In Erstellung und vieles mehr Rechte Maustaste im Package Explorer: New > Java Project aber auch: File > New > Java Project Benutzt default output folder und JUnit 4
Compiler und Package Compiler auf Version 6.0 setzen: Project > Properties > Java Compiler > Configure Workspace > 6.0 Klasse hinzufügen Unter Projekt > src Rechtsklick auf Package New > Class Package anlegen im Package Explorer: <Project> > New > Package Klassen importieren CoMa II SS 09 5/24 CoMa II SS 09 6/24 Klassen hinzufügen cont d Package > Rechtsklick > Import > General > File System Ordner auswählen und zu importierende Dateien selektieren ggf. noch Packagenamen der Java-Klassen anpassen Fehler werden angezeigt Tooltip Angebot zur Fehlerbehebung Navigieren über Leisten im Editor
Autocorrection Autocompletion Tooltip Compilerfehler werden in Echtzeit angezeigt Code Fragement wird markiert Glühbirne: Vorschlag zur Autocorrection. und ctrl + space stoßen Autocompletion an Tippe erste Buchstaben, drücke ctrl + space und tippe weiter Tippe this. öffnet Dialog Klassen, Interfaces, Methoden, globale und lokale Variablen können angesprochen werden Ausprobieren: Integer i = new Int<ctrl+space> Ebenso für Schleifen: for, do, while mit ctrl + space Benötigte Tags für Javadoc werden automatisch eingefügt Refactor Rename CoMa II SS 09 9/24 CoMa II SS 09 10/24 Refactor Method Signature Eigener Menupunkt oder Kontext-sensitives Menu im Editorfenster und Package Explorer Refactor Variable highlighten und Refactor > Rename Variablenname wird an allen notwendigen Stellen geändert Manchmal besser: Open Rename Dialog erlaubt auch das Umbennenen von gettern and settern Platziere Cursor in Methode Refactor > Change Method Signature auch: Parameter und Exceptions änderbar
Refactor Move Weitere Funktionen Source > Generate Getters and Setters Source > Override/Implements Methods Eigener Menupunkt oder Kontext-sensitives Menu im Editorfenster und Package Explorer Refactor Package Explorer > Java-Klasse > Refactor > Move öffnet Dialog Verschieben einer Java-Klasse in anderes Package Nimmt alle notwendigen Anpassungen wie Ändern des Packagenamen vor ctrl + / Auskommentieren und Einkommentieren Alternativ: Source > Toggle Comment Formatierung mit ctrl + i (Indentation) und ctrl + shift + f Alternativ: Source + Correct Indentation und Source > Format //TODO erzeugt Eintrag in Notizen Views CoMa II SS 09 13/24 Running CoMa II SS 09 14/24 Philosophie: Perspektive bietet Gruppierung von Ansichten und Editor um Softwareentwicklung optimal zu unterstützen Anpassen an persönliche Bedürfnisse möglich (hier nicht gezeigt) Views: Java, Debug und viele andere (oben rechts) Fast View anpassen unten links Package Explorer Editor mit Pfadangaben, LightBulb und Tooltip Reiteransicht mit Problems, Debug und Console Problemansicht Outline zur Klassenübersicht (Attribute und Methoden) Schon bekannt: Programmstart auf der Konsole mittels main-methode: javac <program.java> und java <program> Hier: Knopf Run oder Menu Run (As) Feedback wie Ausgaben und Exceptions über Console
Running Run Configurations bzw. Open Run Dialog für Feineinstellungen und Parameterübergabe DefaultBinTreeTest > Run oder Run As JUnit Test Generische Exceptions Empfohlende Debug-Praxis: Standard-Exceptions abfangen Run > Add Java Exception Breakpoint öffnet Dialog Auswahl von ArrayIndexOutOfBoundsException und NullPointerException,... Exception wird im Debug-Modus gefangen Informationen: Ort des Auftretens,... Debug Modus Roter Stopp-Knopf unterbricht Ausführung Ausgaben und Fehlerausgaben auf Konsole CoMa II SS 09 17/24 Breakpoints Run > Toggle Breakpoint, Rechtsklick in linkeste Leiste Watchpoints Rechtsklick Variable in Outline > Toggle Watchpoint Break- und Watchpoints step over: Stopp bei nächster Zeile CoMa II SS 09 18/24 step into: Abstieg in Methode sofern Source Code vorhanden Rechtsklick auf Breakpoint/Watchpoint > Breakpoint Properties öffnet Dialog Stop des Programms abhängig von Bedingung
Philosophie Howto Java-Framework entwickelt von Kent Beck und Erich Gamma Test-driven development Erst Test entwickeln, dann Code schreiben Automatische Verifikation von Programm-Code und Funktionalität Bei Änderungen am Programm automatische Verifikation vorhandener Funktionalität Unterstützung durch Eclipse Legt Java-Klasse, die Tests implementiert, im gleichen Package an Importiert import static org.junit.assert.* und import org.junit.test Benötigt zwingend Annotation @Test vor Methode public void testmethod Keine Namenskonvention, aber Empfehlung: test* Hilfsmethoden setup() und teardown() möglich aber nicht zwingend Setup vor Test und ggf. Teardown nach Test Gefahr unerwünschter Seiteneffekte Immer nur eine Aspekt pro Test! Assertions und Fail CoMa II SS 09 21/24 Test erfolgreich success, Test fehlgeschlafen failure Vergleich von Programmausgabe mit Vorgabewert mit Assertions asserttrue(boolean condition) erwartet Auswertung der Bedingung zu true, sonst failure assertfalse(boolean condition) erwartet Auswertung der Bedingung zu fals, sonst failure assertequals(long expected, long actual) fail(string message) lässt einen Test mit einer Nachricht fehlschlagen Useful Links Eclipse http://eclipsetutorial.forge.os4os.org/in2.htm http://eclipsetutorial.sourceforge.net/debugger.html http://www.eclipse.org/documentation/ JUnit http://junit.org/apidocs/org/junit/assert.html http://junit.sourceforge.net/doc/cookbook/cookbook.htm http://pub.admc.com/howtos/junit4x/ CoMa II SS 09 22/24