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



Ähnliche Dokumente
Java: Vererbung. Teil 3: super()

Einführung in die Java- Programmierung

Einführung in die Programmierung

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

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

Deutsches Rotes Kreuz. Kopfschmerztagebuch von:

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

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

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

Zählen von Objekten einer bestimmten Klasse

U08 Entwurfsmuster (II)

Mediator 9 - Lernprogramm

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Webgestaltung - Jimdo 2.7

Programmierkurs Java

Erstellen von x-y-diagrammen in OpenOffice.calc

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

Papierverbrauch im Jahr 2000

Kulturelle Evolution 12

Der Gabelstapler: Wie? Was? Wer? Wo?

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Strom in unserem Alltag

Kinderarmut. 1. Kapitel: Kinderarmut in der Welt

Facebook erstellen und Einstellungen

Klausur zur Einführung in die objektorientierte Programmierung mit Java

B: bei mir war es ja die X, die hat schon lange probiert mich dahin zu kriegen, aber es hat eine Weile gedauert.

DAVID: und David vom Deutschlandlabor. Wir beantworten Fragen zu Deutschland und den Deutschen.

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

9 Auto. Rund um das Auto. Welche Wörter zum Thema Auto kennst du? Welches Wort passt? Lies die Definitionen und ordne zu.

Der Tag hat 24 Stunden. Bitte schreibt in die linke Spalte alles auf, was ihr gestern getan habt und euch noch einfällt: War es ein stressiger

Objektorientierte Programmierung

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Graphic Coding. Klausur. 9. Februar Kurs A

teamsync Kurzanleitung

Um die Patientenverwaltung von Sesam zu nutzen, muss man die Patienten natürlich zuerst in die Kartei eintragen.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Papa - was ist American Dream?

Wie halte ich Ordnung auf meiner Festplatte?

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Nina. bei der Hörgeräte-Akustikerin. Musterexemplar

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Statuten in leichter Sprache

Anleitung über den Umgang mit Schildern

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Pfötchenhoffung e.v. Tier Manager

Der Klassenrat entscheidet

1 Mathematische Grundlagen

Kommentartext Medien sinnvoll nutzen

Mein persönlicher Lerncheck: Einen Bericht schreiben

Glaube an die Existenz von Regeln für Vergleiche und Kenntnis der Regeln

Was bedeutet Inklusion für Geschwisterkinder? Ein Meinungsbild. Irene von Drigalski Geschäftsführerin Novartis Stiftung FamilienBande.

Ist Fernsehen schädlich für die eigene Meinung oder fördert es unabhängig zu denken?

Blog Camp Onlinekurs

Datenbanken Kapitel 2

Kurzanleitung für eine erfüllte Partnerschaft

1 Vom Problem zum Programm

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

50 Fragen, um Dir das Rauchen abzugewöhnen 1/6

AutoCAD Dienstprogramm zur Lizenzübertragung

Übungsblatt 7. Was ist die Ausgabe de facto? Entspricht die Ausgabe Ihren Erwartungen?

Java Kurs für Anfänger Einheit 5 Methoden

Einführung in die Programmierung

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

Geld Verdienen im Internet leicht gemacht

Zwischenablage (Bilder, Texte,...)

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Spielmaterial. Hallo! Ich bin der kleine AMIGO und zeige euch, wie dieses Spiel funktioniert. Viel Spaß! von Liesbeth Bos

2A Basistechniken: Weitere Aufgaben

Programmiervorkurs SS 2011 Technische Universität Darmstadt Jan Hendrik Burdinski, Felix Kerger

Vererbung & Schnittstellen in C#

Arbeiten mit UMLed und Delphi

5. Tutorium zu Programmieren

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Chemie für Studierende der Human- und Zahnmedizin FAQ

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

5. Übung: PHP-Grundlagen

Widerrufsbelehrung der Free-Linked GmbH. Stand: Juni 2014

Informationen zum Ambulant Betreuten Wohnen in leichter Sprache

Flyer, Sharepics usw. mit LibreOffice oder OpenOffice erstellen

Was ist PZB? Personen-zentrierte Begleitung in einfacher Sprache erklärt

VibonoCoaching Brief -No. 18

Repetitionsaufgaben Wurzelgleichungen

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Fachhochschule Fulda. Bedienungsanleitung für QISPOS (Prüfungsanmeldung, Notenspiegel und Bescheinigungen)

Zahlen auf einen Blick

Anmeldung zu Seminaren und Lehrgängen

Computeranwendung und Programmierung (CuP)

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

ASVZweb_08/ Schreibhilfe

2015 conject all rights reserved

Abwesenheitsnotiz im Exchange Server 2010

Professionelle Seminare im Bereich MS-Office

1.Unterschied: Die Übungen sind nicht von deinem Mathe-Lehrer...

RSA-Verschlüsselung. Verfahren zur Erzeugung der beiden Schlüssel:

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

Anleitung für Autoren auf sv-bofsheim.de

I Serverkalender in Thunderbird einrichten

Transkript:

Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in der Zeit vom 24.11. bis zum 03.12. beim Prüfungsamt anmelden. Das Prüfungsamt ist nur vormittags geöffnet. Für jeden Buchstaben (Nachname) gibt es jedoch nur einen einzigen Tag, an dem man sich anmelden kann! Bitte informiere dich über den Aushang an Tür LG015 und/oder über das Fachschaftsforum Informatik, an welchem Tag dein Buchstabe vorgesehen ist! Studierende anderer Fachrichtungen melden sich, soweit in ihrer Studienordnung nicht anders vorgesehen, per E Mail direkt bei uns an: programmierung@is.informatik.uni-duisburg.de Bitte Vorname, Nachname, Studienfach und Matrikelnummer angeben! Generelle Hinweise Bitte lies dir den Zettel (d.h. alle Aufgaben) schon vor der Übung gründlich durch! Versuche schon vor der Übung, die Aufgaben zu lösen, oder überlege dir wenigstens Lösungswege und/oder konkrete Fragen, die du stellen kannst! Aufgabe 11 kann größtenteils ohne Rechner gelöst werden, man braucht den Rechner nur zum Ausprobieren (bitte das Programm aus dem Netz herunterladen). Bei Aufgabe 12 kann man sich schon vorher überlegen, welche Instanzvariablen die Klassen haben müssen, welche Datentypen diese Variablen haben müssen, usw. Aufgabe 13 ist zum Weiterdenken. In der Übung werden wir davon ausgehen, dass du mindestens die Aufgaben 11 und 12 (so weit wie dir möglich) vorbereitet hast! Seite 1 von 5

Aufgaben Aufgabe 11: Vererbung und Polymorphie Gegeben sei der folgende Java Code: Listing 1: FahrzeugTest.java 1 c l a s s Fahrzeug extends Object { 2 Fahrzeug ( ) { 3 System. out. p r i n t l n ( " Ich kann fahren. " ) ; 4 } 5 } 6 c l a s s Auto extends Fahrzeug { 7 Auto ( ) { 8 System. out. p r i n t l n ( " Ich habe v i e r ärder. " ) ; 9 } 10 } 11 class SUV extends Auto { 12 SUV( ) { 13 System. out. p r i n t l n ( " Ich bin e i n n u t z l o s e r "+ 14 " B e n z i n f r e s s e r. " ) ; 15 } 16 } 17 public c l a s s FahrzeugTest { 18 19 public static void main ( S t r i n g [ ] args ) { 20 21 SUV suv = new SUV( ) ; 22 23 i f ( suv instanceof Fahrzeug ) 24 System. out. p r i n t l n ( 25 " Dies i s t e i n Fahrzeug. " ) ; 26 i f ( suv instanceof Auto ) 27 System. out. p r i n t l n ( 28 " Dies i s t e i n Auto. " ) ; 29 i f ( suv instanceof SUV) 30 System. out. p r i n t l n ( 31 " Dies i s t e i n SUV. " ) ; 32 } 33 } a) Überlege dir zuerst, ohne das Programm auszuprobieren: Was wird dieses Programm ausgeben? Warum? b) Teste das Programm nun. Entspricht das Ergebnis dem, was du erwartet hast? Seite 2 von 5

Aufgabe 12: Das Konzept Auto und dessen Spezialisierung Pickup Modelliere die folgenden Konzepte, indem du sie in den Klassen Auto, Pickup und AutoTest verwirklichst. Eigenschaften von Objekten dieser Klassen sollen ausschließlich beim Erzeugen gesetzt und ggf. durch Methoden verändert werden können. Auto: Ein Auto soll ein Kennzeichen, einen Kilometerstand und eine Anzahl Sitzplätze haben. Wenn nicht anders angegeben, so soll das Kennzeichen eines Auto Objektes standardmäßig DU-DAI 0815 lauten, es sollen aber natürlich auch Autos mit anderen Kennzeichen erzeugt werden können. Ein neu erzeugtes Auto hat grundsätzlich noch keine Kilometer gefahren. Wenn nicht anders angegeben, so hat ein Auto 5 Sitzplätze. Es sollen jedoch auch zweisitzige Autos erzeugt werden können. Zu guter Letzt hat ein Auto außerdem eine Antenne, die ausgefahren oder eingefahren sein kann. Die Klasse soll mindestens folgende Methoden besitzen: public String getkennzeichen(): liefert das Kennzeichen zurück public int getkilometerstand(): liefert den aktuellen Kilometerstand zurück public void fahre(int x): schreibt eine Meldung an die Standardausgabe, dass das Auto x Kilometer fährt, und setzt dann den Kilometerstand entsprechend weiter public void antenneeinfahren(): schreibt eine Meldung an die Standardausgabe, dass die Antenne eingefahren wird, und setzt den Status der Antenne public void antenneausfahren(): schreibt eine Meldung an die Standardausgabe, dass die Antenne ausgefahren wird, und setzt den Status der Antenne public boolean istantennedraussen(): liefert genau dann true, wenn die Antenne ausgefahren ist protected void vordemwaschen(): bereitet das Auto auf den Aufenthalt in der Waschstraße vor konkret bedeutet das bei einem Auto, dass die Antenne eingefahren wird public void waschen(): bereitet das Auto für eine Wagenwäsche vor und schreibt dann eine Meldung an die Standardausgabe, dass der Wagen gewaschen wird public int getsitzplaetze(): liefert die Anzahl Sitzplätze zurück public boolean equals(object o): ergibt genau dann true, wenn das Objekt o ebenfalls ein Auto ist, und wenn die beiden Kennzeichen gleich sind public String tostring(): gibt eine passende String Repräsentation des Autos zurück Seite 3 von 5

Pickup: Ein Pickup ist für unsere Zwecke eine spezielle Art von Auto. Anders als sonstige Autos hat es auf jeden Fall nur 2 Sitzplätze. Dafür hat es zusätzlich eine offene Ladefläche mit einem beim Erzeugen bestimmbaren Fassungsvermögen f. Die Ladefläche ist beim Erzeugen des Pickups zunächst leer und kann maximal mit f Dingen beladen werden. Die Klasse soll mindestens folgende Methoden besitzen: public boolean beladen(int x): falls auf der Ladefläche noch genügend Platz ist, wird der Inhalt der Ladefläche um x Dinge erhöht, eine passende Meldung an die Standardausgabe geschrieben, und true zurückgegeben, andernfalls false public void entladen(int x): falls auf der Ladefläche mindestens x Dinge vorhanden sind, wird der Inhalt der Ladefläche um x Dinge erniedrigt, eine passende Meldung geschrieben, und true zurückgegeben, andernfalls false protected void vordemwaschen(): bei einem Pickup soll vor dem Waschen nicht die Antenne eingefahren werden, sondern stattdessen die Ladefläche geleert werden public int getladung(): liefert die Anzahl Dinge, die derzeit auf der Ladefläche liegen, zurück, ohne den Ladezustand zu verändern public String tostring(): gibt eine passende String Repräsentation des Pickups zurück AutoTest: Diese Klasse ist ausschließlich zum Testen der Klassen Auto und Pickup da. Sie soll vom Java Interpreter ausgeführt werden können. Definiere also eine passende main Methode, in der mehrere verschiedene Autos und Pickups erzeugt werden. Dort sollte u.a. Folgendes geschehen: Lass dir die Kennzeichen und sonstigen Zustände der erzeugten Objekte ausgeben. Lass die Autos und Pickups fahren, waschen und teste sie untereinander auf Gleichheit. Teste die Beladelogik der Pickups. Hinweis: Der Modifikator protected bewirkt bei Methoden und Variablen, dass diese nur innerhalb der betreffenden Klasse und aller Klassen, die von ihr erben, sichtbar sind. Der Modifikator private dagegen bewirkt eine Sichtbarkeit nur innerhalb der betreffenden Klasse. Der Modifikator public bewirkt eine allgemeine Sichtbarkeit. Aufgabe 13: Erweitern eines Konzeptes um verwandte Klassen Auf Blatt 3 wurde die Klasse Buch erstellt, die ein Buch in einer Bibliothek modelliert. Den Quellcode für die Klasse Buch kannst du dir bei Bedarf aus dem Web herunterladen (siehe Musterlösung Blatt 3). Nun soll es in dieser Bibliothek außerdem auch Zeitschriften geben. Zeitschriften haben einen Titel, eine ISSN (statt ISBN!) und außerdem noch eine Ausgabennummer. Zwei Zeitschriften Seite 4 von 5

sind gleich, wenn die ISSN gleich ist. Zeitschriften sollen keine Bücher sein, und Bücher keine Zeitschriften. a) Welche Funktionalitäten und Eigenschaften sind nur bei Zeitschrift vorhanden, welche nur bei Buch, und welche haben beide Konzepte gemeinsam? b) Welche Klassen brauchst du mindestens, um die oben beschriebenen Bedingungen umzusetzen? Beachte insbesondere, dass Zeitschriften keine Bücher sein sollen, und Bücher keine Zeitschriften. Das bedeutet unter anderem, dass der Ausdruck zeitschrift1 instanceof Buch den Wert false haben soll, wenn die Variable zeitschrift1 vom Typ Zeitschrift ist. c) Welche Funktionalitäten und Eigenschaften kannst du aus der Klasse Buch in die anderen Klassen verschieben? d) Was fehlt dann noch in Buch und den anderen Klassen? e) Implementiere dein Konzept und teste es. Hinweis: Diese Aufgabe solltest du alleine lösen können. Versuche, der Reihe nach alle Fragen in den einzelnen Teilaufgaben zu beantworten. Implementiere danach die Klassen, die du entworfen hast. Seite 5 von 5