Technische Universität München Fakultät für Informatik Prof. Dr. Helmut Seidl Michael Petter Melanie Dietz Raphael Geissler SS 2005 Programmierpraktikum Java Entdecken Arbeitsblatt 1 Grundlagen 1 Vererbung und Polymorphie Verdeutlichen Sie (wenn möglich) anhand der nachfolgenden Codefragmenten die Begriffe • Oberklasse Unterklasse • Einfachvererbung Mehrfachvererbung • abstrakte Klasse • Überschreiben Verbergen • Überladen Polymorphismus • Klassenattribut Objektattribut • Klassenoperation Objektoperation public abstract class GraphicsObj { private static int InstanceCounts = 0; protected int PosX ; protected int PosY ; 5 public static void addObject ( GraphicsObj object ) { // ... } 10 15 public static void removeObject ( GraphicsObj object ) { // ... } public abstract void draw ( Color c ) { // ... 1 } public void draw () { draw (new Color ( Color . BLACK )); } 20 } 5 public class GraphicsRectangle extends GraphicsObj { public void draw ( Color c) { // ... } } public class GraphicsEllipse extends GraphicsObj { protected int PosX ; protected int PosY ; 10 public void draw ( Color c) // ... } { } 15 20 public class GraphicsCircle extends GraphicsEllipse { public void draw ( Color c ) { // ... } } 2 Arbeitsplatz einrichten 2.1 Entwicklungsumgebung Vergewissern Sie sich, dass folgende Programme auf ihrem Arbeitsrechner installiert sind: 1. Sun Java SDK ab Version 1.5 (wird durch javac -version angezeigt) 1 2. eclipse 3.1M5 2 Richten Sie die Programme ansonsten ein (CD notfalls am Lehrstuhl). 2.2 Plugin Installation in Eclipse Starten Sie Eclipse. Für Eclipse existiert ein eigenes Plugin, mit dem die SVN Verwaltung innerhalb von Eclipse ermöglicht wird. Um dieses Plugin zu installieren, sollten Sie zuerst überprüfen, ob ihr Netzwerkzugang richtig konfiguriert ist. 1 http://java.sun.com 2 www.eclipse.org 2 Befindet sich ihr Arbeitsrechner hinter einem Proxyserver, müssen dessen Daten im Menü Window→Preferences→Install/Update:Proxy Settings eintragen. Proxy Server Download und Installation Erweitern Sie nun Eclipse über folgende Arbeitsschritte: 1. Gehen Sie ins Menü Help→Software Updates→Find and install. 2. Wählen Sie Search for new features to install aus. 3. Fügen Sie eine neue Remote Seite mit URL http://subclipse.tigris.org/update hinzu 4. Bestätigen Sie ihre Auswahl mit Finish 5. Wählen Sie das Plugin Subclipse (ca. 2MB) aus und lassen sie es installieren. Konfiguration 1. Gehen Sie in Window→Open Perspective→Other... und wählen Sie das SVN Repository aus. 2. Rechtsklicken Sie in das neue Teilfenster und wählen Sie new→Repository location 3. Tragen Sie bei URL http://www2.in.tum.de/repos/progprakt/studenten/ und bei Username ihren Benutzernamen für den SVN Server ein. Check out Um das erste Beispiel herunterzuladen: 1. Öffnen Sie in der SVN Ansicht den Ordner templates/grundlagen. 2. Rechtsklicken sie darauf und wählen Sie Check out as Project Beispiel ausführen Rechtsklicken Sie auf die Datei build.xml und wählen Sie Run→1 Ant Build. Im Consolen-Fenster sollte die Ausgabe des Programms zusammen mit der Meldung BUILD SUCCESSFUL erscheinen. 3 Threads Bearbeiten Sie die in 2.2 erhaltenen Klassen Synch.java, Call.java und Callme.java so, dass beim Ausführen des Ant target run folgende Ausgabe entsteht: [hello] [synchronized] [world] Verwenden sie dazu das Schlüsselwort synchronized auf beide mögliche Varianten. 3 4 Generische Klassen Verändern Sie das folgende Beispiel so, 1. dass kein Klassencast vorkommt. 2. dass beim Einfügen eines String in die Liste ein Compilterfehler geworfen würde. List myIntList = new LinkedList (); myIntList . add (new Integer (0)); Integer x = ( Integer ) myIntList . iterator (). next (); 5 Literaturverzeichnis 5.1 Skript Informatik 1 (Prof. Seidl) Sämtliche als Grundwissen angesehenen Techniken wurden in der Vorlesung Einführung in die ” Informatik 1“ behandelt. Hier ist eine Übersicht der einzelnen Themen. • Vererbung: Kapitel 12, S.122 • Polymorphie: Kapitel 13, S.134 • Generics: Kapitel 13.2, S. 139 • Abstrakte Klassen: Kapitel 14, S. 144 • Threads: Kapitel 20, S. 190 5.2 Sun Java Homepage Auf der Homepage von Java Sun 3 gibt es Informationen zu allen Bereichen von Java. Unter anderem ist ein eigener Tutoriumsbereich 4 eingerichtet worden. Verschiedene Tutorials, die sich mit den Grundlagen von Java beschäftigen, sind auf der von Sun bereitgestellten Entwickler Homepage 5 zu finden. Weiterhin ist auch ein Tutorial6 für Generics vorhanden. Siehe Einführung in die Informatik 1 von Prof. Seidl7 . Insbesondere ist das Buch Java ist auch eine Insel8 zu empfehlen. Weitere Literaturangaben 3 http://java.sun.com 4 http://java.sun.com/learning/index.html 5 http://java.sun.com/developer/onlineTraining/essentials/ 6 http://java.sun.com/j2se/1.5/pdf/generics-tutorial.pdf 7 http://www2.informatik.tu-muenchen.de/lehre/vorlesungen/WS04/info1/ 8 http://www.galileocomputing.de/openbook/javainsel4/ 4