Informatik I Eprog HS10



Ähnliche Dokumente
Einführung in die Java- Programmierung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Programmierung für Mathematik (HS13)

1 Vom Problem zum Programm

Mediator 9 - Lernprogramm

Java: Vererbung. Teil 3: super()

Javakurs 2013 Objektorientierung

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.

Objektorientierte Programmierung

1) Farbsteuergerät in der Nikobus-Software unter Modul zufügen hinzufügen.

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

5. Übung: PHP-Grundlagen

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Internationales Altkatholisches Laienforum

Programmierkurs Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

Menü auf zwei Module verteilt (Joomla 3.4.0)

Vorgehensweise bei Lastschriftverfahren

Fallbeispiel: Eintragen einer Behandlung

Dokumentation für das Spiel Pong

Einführung in die Programmierung

Diese Anleitung wurde erstellt von Niclas Lüchau und Daniel Scherer. Erste Anmeldung. Schritt 1: Anmeldung..2. Schritt 2: Passwort setzen 3

1. Einführung. 2. Alternativen zu eigenen Auswertungen. 3. Erstellen eigener Tabellen-Auswertungen

104 WebUntis -Dokumentation

HANDBUCH PHOENIX II - DOKUMENTENVERWALTUNG

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Repetitionsaufgaben Wurzelgleichungen

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

FuxMedia Programm im Netzwerk einrichten am Beispiel von Windows 7

Einführungskurs MOODLE Themen:

Folge 18 - Vererbung

Zählen von Objekten einer bestimmten Klasse

Kurzanleitung für die Abgabe der Abrechnung über das Mitgliederportal der KV Sachsen

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Anleitung vom 4. Mai BSU Mobile Banking App

Erstellen von x-y-diagrammen in OpenOffice.calc

Anleitung zum Erstellen eines Freihaltetermins

Wie halte ich Ordnung auf meiner Festplatte?

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Pflegeberichtseintrag erfassen. Inhalt. Frage: Antwort: 1. Voraussetzungen. Wie können (Pflege-) Berichtseinträge mit Vivendi Mobil erfasst werden?

Institut für Programmierung und Reaktive Systeme 26. April Programmieren II. 10. Übungsblatt

Praktikum Ingenieurinformatik. Termin 2. Verzweigungen (if-else), printf und scanf, while-schleife

Anleitung Postfachsystem Inhalt

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

5 DATEN Variablen. Variablen können beliebige Werte zugewiesen und im Gegensatz zu

Satzhilfen Publisher Seite Einrichten

ACHTUNG: Voraussetzungen für die Nutzung der Funktion s-exposé sind:

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Historical Viewer. zu ETC5000 Benutzerhandbuch 312/15

Anton Ochsenkühn. amac BUCH VERLAG. Ecxel für Mac. amac-buch Verlag

Anleitung Typo3-Extension - Raumbuchungssystem

Gezielt über Folien hinweg springen

Anleitung Selbststudium

Anlage eines neuen Geschäftsjahres in der Office Line

User Manual Data 24. Login und Layout

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

Benutzung der LS-Miniscanner

Lehrer: Einschreibemethoden

Anleitung SEPA-Lastschriften mit VR-NetWorld Software 5

Ich möchte meine Beitragsnachweise nach dem vereinfachten Schätzverfahren erstellen.

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

AutoCAD Dienstprogramm zur Lizenzübertragung

macs Support Ticket System

Webgestaltung - Jimdo 2.7

BENUTZERHANDBUCH für. Inhaltsverzeichnis. 1. Anmeldung. 2. Rangliste ansehen. 3. Platzreservierung. 4. Forderungen anzeigen

Enigmail Konfiguration

So funktioniert das online-bestellsystem GIMA-direkt

Schuljahreswechsel im Schul-Webportal

Übung: Verwendung von Java-Threads

Menü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen

Photopaint - Linsen. (Speichere deine Arbeit von Anfang an regelmäßig unter dem Namen Linsen.cpt )

So gehts Schritt-für-Schritt-Anleitung

Anleitung Administration Alterssiedlungen Basel. So aktualisieren Sie Ihre Daten. Version:

Holen Sie das Beste aus Ihrer Kampagne heraus mit unserer Landingpage!

Microsoft Access 2010 Navigationsformular (Musterlösung)

Fotogalerie mit PWGallery in Joomla (3.4.0) erstellen

Erste Schritte mit

4.1 Wie bediene ich das Webportal?

Nach der Installation des FolderShare-Satellits wird Ihr persönliches FolderShare -Konto erstellt.

Grundlagen von Python

Serienbriefe schreiben mit Ratio - Adressen (Microsoft Word Versionen 8.0 und 9.0)

Hinweise zum Übungsblatt Formatierung von Text:

Erstellen der Barcode-Etiketten:

Mail-Signierung und Verschlüsselung

ID VisitControl. Dokumentation Administration Equitania Software GmbH cmc Gruppe Seite 1

Dieses Tutorial gibt eine Übersicht der Form Klassen von Struts, welche Besonderheiten und Unterschiede diese aufweisen.

Whitepaper. Produkt: combit Relationship Manager 7. combit Relationship Manager -rückläufer Script. combit GmbH Untere Laube Konstanz

5. Tutorium zu Programmieren

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Das Roaming Cockpit. Inhalt. 1 Das Roaming Cockpit Aufrufen des Roaming Cockpit über den Browser... 3

Gemeinsamer Bibliotheksverbund: Übertragung von Datenexporten für den Verbundkatalog Öffentlicher Bibliotheken

Grafischer Tischeplan

Feiertage in Marvin hinterlegen

Transkript:

Department of Informatics software evolution & architecture lab Informatik I Eprog HS10 Übung 5 1 Aufgabe: Konstruktoren und statische Variablen 1.1 Lernziele 1. Sie können ein Java Projekt in Eclipse anlegen. 2. Sie können mehrere Werkzeuge, die Ihnen Eclipse bietet, effizient nutzen. 3. Sie können mehrere Konstruktoren in einer Klasse implementieren und diese gezielt aufrufen. 4. Sie kennen den Unterschied zwischen Instanz- und Klassenvariablen 1.2 Aufgabenstellung 1. Installieren Sie die IDE 1 Eclipse (wählen Sie Eclipse Classic). 2. Arbeiten Sie das zur Verfügung gestellte Eclipse-Tutorial durch. 3. Legen Sie ein neues Eclipse Projekt an und geben Sie ihm einen sinnvollen Namen. 4. Schreiben Sie eine Klasse Employee mit folgenden Attributen: firstname, lastname, street, zip und residence. Im Kontextmenü von Eclipse finden Sie den Eintrag Source/Generate Getters and Setters. Nutzen Sie diese Funktionalität, um die Accessor-Methoden zu implementieren. 5. Nutzen Sie ebenfalls Source/Generate Constructor using fields, um die Klasse um einen Konstruktor zu erweitern, welcher es ermöglicht, folgende Attribute bereits bei der Objekterzeugung mit zu initialisieren: firstname, lastname, street, zip und residence. 6. Erstellen Sie eine zusätzliche Instanzvariable id vom Typ int, inklusive Getter. Fügen Sie der Klasse eine Klassenvariable numberofcreatedemployees vom Typ int hinzu und initialisieren Sie diese mit 0. Erweitern Sie den Konstruktor aus 5. nun dahingehend, dass dieser den aktuellen Wert von numberofcreatedemployees der Instanzvariablen id zuweist und erstere Variable anschliessend um eins erhöht. So soll gewährleistet werden, dass jedes neue Employee-Objekt eine eindeutige Personalnummer erhält. 7. Schreiben Sie einen weiteren Konstruktor, welcher keine Argumente erwartet. Er soll den in 6. erweiterten Konstruktor mit Dummy -Werten aufrufen. So könnte für lastname der Wert TestNachname, für firstname TestVorname, etc. übergeben werden. Danach soll der Konstruktor zudem auf dem Bildschirm ausgeben, dass ein Testobjekt generiert wurde und welche Personalnummer dieses besitzt: 1 IDE steht für Integrated Development Environment 1

Ein Testobjekt mit der Personalnummer 12 wurde erzeugt! 8. Implementieren Sie eine Methode equals(), welche als Argument ein Employee-Objekt erwartet. Die Methode soll die Personalnummern der beiden Angestellten vergleichen. Stimmen diese überein, so soll die Methode wahr zurückliefern, andernfalls falsch. 9. Implementieren/Überschreiben Sie die Methode tostring(), sodass ein Employee-Objekt Information in folgender Form zurückgibt: Hans Muster Rämistrasse 74 8001 Zürich Personalnummer: 15 10. Lassen Sie nun noch Eclipse Ihren Code formatieren, indem Sie Source/Format verwenden. 11. Schreiben Sie einen TestDriver. Verwenden Sie ein Template von Eclipse, um darin die main()-methode zu erzeugen. Dazu schreiben Sie main, drücken anschliessen CTRL+space und wählen den obersten Eintrag in der eingeblendeten Liste. Eclipse erzeugt dadurch automatisch den Rumpf für die main()-methode. Instanzieren Sie darin verschiedene Employee- Objekte und testen Sie insbesondere die equals()-methode. Nutzen Sie code completion, indem Sie wiederum während des Schreibens CTRL+space drücken. 12. Wie Sie sicher gemerkt haben, erleichtern Ihnen die code completion und die Templates das Programmieren erheblich. In den Einstellungen von Eclipse unter Java/Editor/Templates finden Sie die vordefinierten Templates. Stöbern Sie darin herum, um in Zukunft von diesen Gebrauch machen zu können. 13. Warum erzeugt folgendes Codefragment, wenn die Klasse Employee damit ergänzt wird, einen Fehler zur Übersetzungszeit? Begründen Sie Ihre Antwort und diskutieren Sie den Sinn der Methode. 1 public static int getid() { 2 return this.id; 3 } Nehmen Sie Ihre Employee-Klasse als Java-File in die Übungsbesprechung mit! 2

2 Aufgabe: Vorlesung 2.1 Lernziele 1. Sie können Konstruktoren schreiben. 2. Sie wissen, wie man Methoden überladet. 3. Sie kennen den Unterschied zwischen Instanz- und Klassenvariablen. 4. Vertiefung der programmatischen Abbildung einer Problemstellung. 2.2 Ausgangslage Für eine Vorlesung kann man sich einschreiben, jedoch nur solange es noch freie Plätze gibt. Vorlesungen sind durch einen Namen gekennzeichnet und sind durch eine Vorlesungsnummer eindeutig identifizierbar. Normalerweise bieten sie Platz für 100 Anmeldungen, jedoch kann der Dozent beim Eröffnen der Vorlesung eine andere maximale Teilnehmerzahl festlegen. Jedermann hat Einsicht in die Anzahl freier Plätze und ob man sich für die Vorlesung noch einschreiben kann. Auch Abmeldungen können eingehen. a) Aufgabenstellung Implementieren Sie obigen Sachverhalt in einer Klasse und testen Sie diese in einem Test-Driver. Versuchen Sie, die Aufgabe mit Konstruktoren, Overloading und statischen Variablen zu lösen. 3

3 Aufgabe: Chain of Words 3.1 Lernziele 1. Das Wissen über Referenzen vertiefen. 2. Die Verwendung von Loops wiederholen, insbesondere den Unterschied zwischen whileund for-schleifen vertiefen. 3. String-Operationen wiederholen. a) Aufgabenstellung: Die Elemente 1. Erstellen Sie eine Klasse namens WordElement. 2. Definieren Sie nun einen Konstruktor, welcher einen String als Parameter erwartet. 3. Deklarieren Sie nun eine private Instanzvariable des Typs WordElement und benennen sie diese mit nextelement. 4. Machen Sie dasselbe für eine zweite Variable namens previouselement. 5. Implementieren Sie Getter- und Setter-Methoden. 6. Fügen Sie desweiteren zwei Methoden hinzu, welche überprüfen, ob die jeweiligen Instanzvariablen mit einem Wert initialisiert wurden. b) Aufgabenstellung: Die Kette Im vorherigen Teil haben wir den Grundstein für unsere Kette gelegt: Die einzelnen Elemente verfügen über die Methoden, um sich aneinander zu ketten. 1. Erstellen Sie eine Klasse namens Chain. 2. Definieren Sie für diese Klasse eine private Instanzvariable namens firstelement. 3. Desweiteren muss eine Methode addword(string word) definiert werden, welche keinen Wert zurückliefert. Diese Methode erstellt bei Aufruf jeweils eine neue Instanz der Klasse WordElement und übergibt dieser gleich das erhaltene Wort. Ist firstelement == null, so wird diese Variable mit dem neuen Objekt initialisiert. Ist dies nicht der Fall, so muss nun über eine while-schleife das letzte Element der Wortkette ermittelt werden und danach das Objekt angefügt werden. 4. Erweitern Sie die Klasse dahingehend, dass eine Methode namens getwordcount() die Anzahl Wörter der Kette zurückgibt. 5. Ebenfalls muss eine Methode namens getsentence() erstellt werden, welche die gesamte Kette als String (mit Leerzeichen zwischen den Wörtern!) zurückgibt. 6. Erstellen Sie nun eine Methode getreverse(), welche bei folgendem Input: 1 Chain mychain = new Chain(); 2 mychain.addword("anna"); 3 mychain.addword("liebt"); 4 mychain.addword("thomas"); diesen Ouptut in Form eines Strings zurückliefert: Thomas liebt Anna. 7. Erstellen Sie eine Methode namens geteverysecond() welche zuerst eine lokale Variable mit der aktuellen Anzahl Wörter initialisiert und danach mit einer for-schleife jedes zweite Wort zu einem String zusammenhängt. z.b. Die Wörter Ich lebe und arbeite in der Schweiz sollten wie folgt ausgegeben werden: lebe arbeite der. 8. Testen Sie die Funktionalität in einem TestDriver. 4

4 Aufgabe: GUI First Window 4.1 Lernziele 1. GUI-Elemente kennenlernen. 2. Bestehenden Code verwenden und anpassen können. 4.2 Aufgabenstellung Verwenden Sie für diese Aufgabe die zur Verfügung gestellten Klassen-Files Gui.java und GuiTest.java. 2 1. Importieren Sie die beiden Files in Eclipse und führen Sie den TestDriver aus. 2. Schauen Sie sich die Klasse Gui und deren show()-methode an. Darin werden u.a. drei Hilfsmethoden aufgerufen, um Muster zu erzeugen: drawrandomcolorsquarepattern, drawgreekpattern und drawsmiley. Das Ziel ist, diese so zu vervollständigen, dass in etwa dasselbe Bild(siehe unten) herauskommt. 3. In der drawrandomcolorsquarepattern-methode geht es darum, im durch die Übergabewerte vorgegebenen Quadrat für jedes Pixel eine zufällige Farbe zu setzen. Ein einzelnes Pixel (x, y) in einem BufferedImage image verändern Sie farblich wie folgt r, g und b stehen dabei für die Rot-, Grün- und Blauanteile und können Werte von 0 bis 255 annehmen. 1 Color color = new Color(r, g, b); 2 image.setrgb(x, y, color.getrgb() ); 4. Schauen Sie sich für die beiden anderen Methoden die Graphics-Klasse insbesondere die im Methodenrumpf angegeben Methoden in der Java-API an und vervollständigen Sie sie ebenfalls, indem Sie sich an existierendem Code orientieren. Statt Farben wie oben beschrieben selber zu definieren, können Sie auch bereits vorhandene Konstanten verwenden. 1 Color color = Color.BLACK; 2 graphics.setcolor(color); 3 //oder direkt 4 graphics.setcolor(color.black); 5. Probieren Sie weitere Dinge aus; Verändern Sie die show-methode, um andere Muster zu erzeugen. 2 Diese finden Sie entweder direkt auf der Übungsseite oder im OLAT. 5

6