Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

Eclipsekurs 2006/Tag 1

Erste Schritte

  • Starte die Eclipse-Umgebung mit dem Kommando /home/pub/lib/eclipse/eclipse


Projekt anlegen

  • Erstelle ein Java-Projekt "eclipseTutorial" mit getrennten Ordnern für den Quellcode (src) und kompilierte class-Dateien (bin).
    • Konfiguriere dabei Ecllipse so, das es ab jetzt diese Einstellung als Standardwert verwendet.
  • Lege in diesem Projekt eine neue Klasse "Spielwiese" an, die eine main-Methode enthält.
  • Erweitere die Klasse zu einem "Hello World"-Programm und führe dieses in Eclipse aus.

Tipp: Mit [Strg+Leerzeichen] erzeugt die Eclipse-Autocompletion ein System.out.println();

Aufruf mit Parametern

  • Verändere das Programm so, dass es einen beim Start übergebenden Parameter auf dem Bildschirm ausgibt.

Tipp 1: Die Funktion main bekommt ihre Parameter als Array von Strings. Der Name des ersten übergebenen Parameters ist also args[0] . Tipp 2: Die Parameter des Programms kannst du in der Run-Configuration einstellen.

Autokorrektur

  • Baue Fehler in dein Programm ein (Semikolon löschen, Klammer löschen, Tippfehler) und sieh dir an, welche Korrekturvorschläge Eclipse anbietet. Spiele mit diesem Feature ein wenig herum. Du kannst Änderungen [Strg+Z] (Undo) jederzeit rückgängig machen.

Tipp: Beachte die "Problems"-Ansicht, sowie die Markierungen links und rechts vom Editorfenster. Manchmal muss man Änderungen allerdings erst speichern, damit die Anzeigen aktualisiert werden.

Autocompletion

  • Lege eine neue Klasse "TinyObject" an, welche keine main Methode enthält.
  • "TinyObject" soll drei Klassenvariablen enthalten. Wenn ein Objekt dieser Art erzeugt wird, weden diese mit einem beliebigen Wert initialisiert.
  • Erweitere "TinyObject" um eine Methode "void printYouselfAndThis(String text)", die den übergebenen Text sowie den Inhalt der Klassenvariablen auf der Konsole ausgibt.
  • Sieh dir an, was passiert, wenn du in dieser Funktion "this." schreibst und anschließend kurz wartest oder die Autocomplition mit [Str+Space] aktivierst.
  • Lege eine Klassenvariable "diesIstEinLangerName" an. Schreibe irgendwo in der Klasse "diesIst" und drücke [Strg+Space].
  • Erzeuge in der "Spielwiese" ein "TinyObject" und teste deine Methode.

Programmabbruch

  • Lege eine Methode "void keepLooping()" an welche eine Endlosschleife mit einer Konsolenausgabe (z.B. "still looping") enthält. Führe diese Methode aus und brich die Ausführung mit einem der roten Stopbuttons ab.

Navigieren im Projekt

  • Sieh dir die "Outline"-Ansicht an und probiere aus, wie du mit ihr in deinen Klassen navigieren kannst.
  • halte die [Strg] Taste gedrückt und gehe mit der Maus über einen Funktionsaufruf. Klicke ihn an. - Was ist passsiert?

Tip: Am oberen Rand des Fensters gibt es gelbe Vorwärts- und Rückwärts-Knöpfe - mit ihnen kannst du wie in einem Web-Browser die Plätze, die du mit [Strg]-Klick angesprungen hast, wieder besuchen.

Javadoc

  • Kommentiere deinen beiden Funktionen mit Javadoc.

Tipp: /**[Enter] in der Zeile vor einer Methode oder Klasse legt automatisch einen Javadoc-Rumpf mit allen benutzten Parametern an.

  • Bewege die Maus in deinem Hauptprogramm auf eine Stelle, an der du eine der kommentierten Funktionen verwendest (die Maus muss mit der Spitze über dem Methoden-Aufruf sein) und sieh dir die Javadoc-Ansicht an.



Übungsaufgaben

Du hast jezt einige der kleinen Helfer kennengelernt mit denen Eclipse dich beim Programmieren unterstütz. Übung im Umgang mit Eclipse bekommt man allerdings erst wenn man es verwendet, wofür wir euch im Folgenden zwei Übungsaufgaben gebastelt haben. Die Zeit hier im Tutorium wird vermutlich nicht ausreichen um die Aufgeben fertig zu stellen, sie sollen nur eine Substanz bilden an der ihr Eclipse ausprobieren könnt.

Aufgabe eins führt euch langsam durch ein kleines Projekt, bei dem ihr Gelegenheit habt alle Features die ihr eben kennengelernt habt auszuprobieren.

Aufgabe zwei ist auschließlich für diejenigen die schon Einiges an Erfahrung in Java mitbringen und einfach nur ein wenig mit Eclipse programmieren wollen.

Viel Spaß!


Aufgabe1 (für alle)

Für alle die sie noch nicht kennen und alle die sie noch einmal ordentlich schreiben wollen:

Die Rennschnecken


Aufgabe 2 (für Experten)

Cäsar-Chiffre

Im folgenden soll ein Programm weitgehend selbsttändig entwickelt werden. Lese dir das nötige Wissen zur Cäsar-Chiffre im Web an und überlegt dir selbst eine Struktur für dein Programm.

Macht dir auch Geanken darüber wie du die einzelnden Teile frühzeitig testen kannst.


  1. Erstelle ein Programm das einen Text aus einer Datei einliest, mit einem Passwort durch eine Cäsar-Chiffre verschlüsselt und in einer neuen Datei (z.B. mit anderer Änderung) speichert.
    • Für mehr Komfort, aber nicht notwendig: Sowohl der Dateiname als auch das Passwort sollen über die Console eingegeben werden können.
  2. Erweitere dein Programm so, dass es einen mit der selben Chiffre verschlüsselten Text bei gegebendem Passwort entschlüsseln kann und in einer seperaten Datei speichert.
  3. Erweitere dein Programm so, dass es in der Lage ist einen beliebigen mit einer Cäsar-Chiffre verschlüsselten Text mit Hilfe von Häufigkeitsanalyse ohne das Passwort zu kennen zu entschlüsseln. Gib auch das gefundene Passwort an.


Hinweis: Unsere Tutoren können dir bei allen auftretenden Javaproblemen helfen, wir können allerdings nicht garantieren, dass sie sich in ihrer Freizeit auch mit Kryptographie beschäftigen.


Verschlüsseln / Entschlüsseln

  1. Trage einen von dir verschlüsselten Text mit min. 50 Zeichen hier im Wiki ein und verlinke ihn auf dieser Seite unter deinem Namen. Entschlüssle andere Texte die hier verlinkt sind.

Wenn du willst, kannst du deinen Chiffrieralgorithmus auch verändern oder einen anderen implementieren, mache das im Link zu deinen damit verschlüsselten Texten aber auch kenntlich. Denke daran, dass du selbst in der Lage sein solltest, deine Texte bei gegebendem Passwort zu entschlüsseln ;)


Zurück zu Eclipse 2006