Musterübung 09: Vererbung und Dynamische Bindung

Größe: px
Ab Seite anzeigen:

Download "Musterübung 09: Vererbung und Dynamische Bindung"

Transkript

1 Musterübung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Hofer) G4 (Angerer) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 09.X 12 Prosabeschreibung Java-Programm Java-Programm Testplan Testergebnisse Korr. Pkte Aufgabe 09.X: Graphische Objekte Realisieren Sie ein Klassensystem für graphische Objekte wie in der folgenden Abbildung dargestellt: Shape - name: String - location: Point - x: int - y: int Point + Point(int, int) + getx(): int + gety(): int + Shape(String, Point, int) + getname(): String + getlocation(): Point - width: int - height: int Rectangle + Rectangle(String, Point, int, int) + getwidth(): int + getheight(): int - radius: int - height: int Circle + Circle(String, Point, int) + getradius(): int - elems: Shape[] - nelems: int Group + Group(String, Point, int) + addelem(shape) + getelemcount(): int + getelems():shape[] + getelem(int): Shape Schreiben Sie eine Basisklasse Shape und Unterklassen Rectangle und Circle für graphische Objekte. Shape haben eine Position. Rectangles haben zusätzlich eine Breite und Höhe, Circles einen Radius. Group bestehen aus einer Reihe von Unterobjekten (elems), die in einem Array vom Typ Shape[] gespeichert werden. Methoden addelem, getelemcount und getelem dienen zur Definition und zum Zugriff auf die Unterelemente. Neben Konstruktoren und Zugriffsmethoden sollen die Klassen folgende Operation implementieren: void draw(): zum Zeichnen mit Klasse Window boolean hit(point point) : stellt fest, ob die Position des Point innerhalb des Objektes liegt. void move(int dx, int dy): zum Verschieben des Objekts um eine Distanz dx / dy. Gehen Sie bei der Lösung folgend vor: 1. Skizzieren Sie Klassen und die Methoden in Prosa. 2. Implementieren Sie die Klassen und die Methoden in Java 3. Testen Sie das Programm interaktiv

2 Prosabeschreibung: Klasse Point Int-Variablen x und y Konstruktor mit x und y als Parameter Klasse Shape Basisklasse für alle graphischen Objekte, abstract Feld name von Typ String Feld location für Position vom Typ Point Konstruktor mit name und Point für Position Abstrakte Methode hit für Feststellen, ob gegebene Position x/y ein Treffer Abstrakte Methode draw für die Ausgabe auf Window Konkrete Methode move für das Verschieben um eine Distanz dx / dy Klasse Rectangle Klasse für Rechtecke, abgeleitet von Shape Felder width und height für Breite und Höhe Konstruktor mit name und Point für Position und w und h für Breite und Höhe Konkrete Methode hit die feststellt, ob innerhalb Rechteck Konkrete Methode draw für die Ausgabe auf Window Klasse Circle Klasse für Kreise, abgeleitet von Shape Feld r für Radius Konstruktor mit name und Point für Position und r für Radius Konkrete Methode hit die feststellt, ob innerhalb Kreis Konkrete Methode draw für die Ausgabe auf Window Klasse Group Klasse für zusammengesetzte Objekte, abgeleitet von GraphObject Array mit Shape-Elementen Int-Variable für Menge der Elemente Konstruktor mit name als Parameter Position ist 0/0 Konstruktor mit name und Point für Position Methode addelem, welches ein Shape anfügt; beim Anfügen wird die Position des Elementes relativ zu diesem zusammengesetzten Element betrachtet und die Position angepasst. Methode getelem(int i) für den Zugriff auf das i-te Element Methode getelemcount() für den Zugriff auf die Anzahl der Elemente Konkrete Methode hit, die feststellt, ob innerhalb der Figur, geht sequentiell die Unterelemente durch Konkrete Methode draw für die Ausgabe auf Window, ruft draw für alle Unterelemente auf Konkrete Methode move für das Verschieben um eine Distanz dx / dy, wobei move aller Elemente aufgerufen wird Klasse Shape Testklasse mit main-methode; beinhaltet die Schleife mit Einlesen des Schusses und Ausgabe der Treffer Methode main: Aufbau einer Figur snowman als Group In einer Schleife o Einlesen der Position des Schusses o Ausgabe, ob Treffer

3 Java-Programm: public class Point { private int x; private int y; public Point(int x, int y) { this.x = x; this.y = y; public int getx() { return x; public int gety() { return y; public abstract class Shape { protected String name; protected Point location; public Shape(String name, Point location) { this.name = name; this.location = location; public String getname() { return name; public Point getlocation() { return location; public abstract void draw(); public abstract boolean hit(point point); public void move(int dx, int dy) { this.location = new Point(location.getX() + dx, location.gety() + dy); public class Rectangle extends Shape { private int width; private int height; public Rectangle(String name, Point location, int width, int height) { super(name, location); this.width = width; this.height = height; public int getwidth() { return width; public int getheight() { return height; public boolean hit(point point) { return (point.getx() >= location.getx() && point.getx() <= location.getx() + width) && (point.gety() >= location.gety() && point.gety() <= location.gety() + height);

4 public void draw() { Window.drawRectangle(location.getX(), location.gety(), width, height); public class Circle extends Shape { private int radius; public Circle(String name, Point origin, int radius) { super(name, origin); this.radius = radius; public int getradius() { return radius; public void draw() { Window.drawCircle(location.getX(), location.gety(), radius); public boolean hit(point point) { int dx = point.getx() - location.getx(); int dy = point.gety() - location.gety(); double dist = Math.sqrt(dx * dx + dy * dy); return (dist <= radius); public class Group extends Shape { private Shape[] elems = new Shape[4]; private int elemcount = 0; public Group(String name) { this(name, new Point(0, 0)); public Group(String name, Point location) { super(name, location); public void addelem(shape obj) { if (elemcount == elems.length) { // resize so we can fit more elements elems = java.util.arrays.copyof(elems, elems.length * 2); obj.move(location.getx(), location.gety()); elems[elemcount] = obj; elemcount++; public Shape getelem(int i) { if (i >= 0 && i < elemcount) { return elems[i]; return null; public int getelemcount() { return elemcount; public void draw() { for (int i = 0; i < elemcount; i++) { elems[i].draw();

5 public boolean hit(point point) { for (int i = 0; i < elemcount; i++) { if (elems[i].hit(point)) { return true; return false; public void move(int dx, int dy) { for (int i = 0; i < elemcount; i++) { elems[i].move(dx, dy); super.move(dx, dy); public class SnowMan { static Group snowman; public static void main(string[] args) { snowman = createsnowman(); Window.open(); snowman.move(100, 80); snowman.draw(); play(); static Group createsnowman() { Group snowman = new Group("The Snowman", new Point(0, 0)); snowman.addelem(new Circle("Torso", new Point(160, 220), 100)); snowman.addelem(new Circle("Head", new Point(160, 80), 40)); snowman.addelem(new Rectangle("LeftLeg", new Point(100, 310), 50, 100)); snowman.addelem(new Rectangle("RightLeg", new Point(170, 310), 50, 100)); snowman.addelem(new Rectangle("LeftArm", new Point(0, 160), 70, 30)); snowman.addelem(new Rectangle("RightArm", new Point(250, 160), 70, 30)); Group hat = new Group("Hat", new Point(135, 0)); hat.addelem(new Rectangle("Crown", new Point(15, 0), 20, 30)); hat.addelem(new Rectangle("Brim", new Point(0,30), 50, 10)); snowman.addelem(hat); return snowman; static void play() { int hits = 0; Point shot = readshot(); while (shot!= null) { Circle shotcircle = new Circle("Shot", shot, 2); shotcircle.draw(); if (snowman.hit(shot)) { Out.println("Hit :-) "); else { Out.println("Failed :-("); shot = readshot(); Out.println("Congratulations: " + hits + " total hits!"); System.exit(0); static Point readshot() { Out.println(); Out.print("Shot (x y): "); Point p = new Point(In.readInt(), In.readInt()); if (In.done() && p.getx() > 0 && p.gety() > 0) return p; else return null;

6 Test:

Übung 09: Vererbung und Dynamische Bindung

Übung 09: Vererbung und Dynamische Bindung Übung 09: Vererbung und Dynamische Bindung Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) G4 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm. Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Prinzip der Vererbung: Aus

Mehr

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen();

// compiliert, aber Programmabbruch zur Laufzeit: einesuppe = ((EßbarerPilz)einPilz).kochen(); Typecast class Pilz void suchen() void sammeln() class EßbarerPilz extends Pilz Suppe kochen() Suppe einesuppe = new Suppe(); return einesuppe; class GiftPilz extends Pilz void entsorgen() class Suppe

Mehr

Übung 10: Dynamische Datenstrukturen und Rekursion

Übung 10: Dynamische Datenstrukturen und Rekursion Übung 10: Dynamische Datenstrukturen und Rekursion Abgabetermin: TT.MM.JJJJ Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben

Mehr

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik

Programmieren II. Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz Institut für Angewandte Informatik Programmieren II Abstrakte Klassen, Interfaces Heusch 13.8, 13.9 Ratz 9.6 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Abstrakte Klassen: Motivation Grundidee abstrakter Klassen:

Mehr

Einführung in die Informatik. Lösung zu Übungsblatt 6

Einführung in die Informatik. Lösung zu Übungsblatt 6 Prof. J. Wolff von Gudenberg Prof. R. Kolla Prof. F. Puppe Prof. D. Seipel Universität Würzburg Lehrstuhl für Informatik II Prof. Dr. J. Wolff von Gudenberg Am Hubland, 97074 Würzburg Dipl.-Inform. Gregor

Mehr

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Kapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt

Mehr

Objektorientierung (OO)

Objektorientierung (OO) Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]

Mehr

JAVA für Nichtinformatiker - Probeklausur -

JAVA für Nichtinformatiker - Probeklausur - JAVA für Nichtinformatiker - Probeklausur - Die folgenden Aufgaben sollten in 150 Minuten bearbeitet werden. Aufgabe 1: Erläutere kurz die Bedeutung der folgenden Java-Schlüsselwörter und gib Sie jeweils

Mehr

Parameterübergabemechanismen für den Methodenaufruf

Parameterübergabemechanismen für den Methodenaufruf Methode, griech. der Weg zu etwas, planmäßiges Verfahren -Brockhaus Parameterübergabemechanismen für den Methodenaufruf Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw

Mehr

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a);

Letztes Mal. static int ggt(int a, int b) { if (a == b) return a; else if (a > b) return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Letztes Mal static int ggt(int a, int b) { if (a == b) return a; else if (a > b) } return ggt(a-b,b); else if (a < b) return ggt(a,b-a); Darf hier nicht stehen! Compiler sagt: Missing return statement

Mehr

Fakultät IV Elektrotechnik/Informatik

Fakultät IV Elektrotechnik/Informatik Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08

Universität Paderborn Prof. Dr. Heike Wehrheim. Betreutes Arbeiten. Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) GPI, WS 07/08 Betreutes Arbeiten Ab diese Woche: freitags, 14 16, E-Pool (während Tutorium Knopf) 375 Wiederholung Klasse: class Klassenname { konzeptuelle Einheit der Modellierungsdomäne kapselt Daten und Operationen

Mehr

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Musterlösung Stand: 5. Februar 2009

Musterlösung Stand: 5. Februar 2009 Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)

Mehr

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 -

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete. II.4.2 Abstrakte Klassen und Interfaces - 1 - ! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete II.4.2 Abstrakte Klassen und Interfaces - 1 - Ähnliche Programmteile public class Bruchelement { Bruch wert;

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 {

Aufgabe11. Methode test1. import java.util.hashmap; import java.util.arraylist; public class Aufgabe11 { Hochschule Harz Programmierung1 Aufgabe 10: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Hashing und Generische Klassen Versuchsziele Kenntnisse

Mehr

Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten

Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten Kapitel 6 Kontrollstrukturen im Kontext von Klassen und Objekten Kontrollstrukturen im Kontext von Klassen und Objekten 1 Ziele Anweisungen auf den Kontext von Klassen und Objekten erweitern Insbesondere

Mehr

16. Dezember 2004 Dr. M. Schneider, P. Ziewer

16. Dezember 2004 Dr. M. Schneider, P. Ziewer Technische Universität München WS 2004/2005 Fakultät für Informatik Lösungsvorschläge zu Blatt 8 A. Berlea, M. Petter, 16. Dezember 2004 Dr. M. Schneider, P. Ziewer Übungen zu Einführung in die Informatik

Mehr

Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten

Kapitel 6. Kontrollstrukturen im Kontext von Klassen und Objekten Kapitel 6 Kontrollstrukturen im Kontext von Klassen und Objekten Kontrollstrukturen im Kontext von Klassen und Objekten 1 Ziele Anweisungen auf den Kontext von Klassen und Objekten erweitern Insbesondere

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7.

CoMa 04. Java II. Paul Boeck. 7. Mai Humboldt Universität zu Berlin Institut für Mathematik. Paul Boeck CoMa 04 7. CoMa 04 Java II Paul Boeck Humboldt Universität zu Berlin Institut für Mathematik 7. Mai 2013 Paul Boeck CoMa 04 7. Mai 2013 1 / 13 Verzweigungen Wenn-Dann Beziehungen if (BEDINGUNG) { else if (BEDINGUNG2)

Mehr

II.4.2 Abstrakte Klassen und Interfaces - 1 -

II.4.2 Abstrakte Klassen und Interfaces - 1 - 1. Unterklassen und Vererbung 2. Abstrakte Klassen und Interfaces 3. Modularität und Pakete 4. Ausnahmen (Exceptions) 5. Generische Datentypen 6. Collections II.4.2 Abstrakte Klassen und Interfaces - 1

Mehr

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch!

Informatik Hochschule Mainz Geoinformatik und Vermessung. Wiederholung. Frohes Fest und Guten Rutsch! Wiederholung Frohes Fest und Guten Rutsch! Inhaltsverzeichnis Programme kompilieren...1 Eclipse bedienen...2 Rechnen mit Literalen...2 Rechnen mit Variablen...2 Sequenzielle Anweisungen...3 Selektive Anweisungen...3

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B, IB 2 C Sommersemester 2013 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2013, 08:30 Uhr

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 3 Lösungsvorschlag Objektorientierte Programmierung 08. 05. 2006 Lösung 8 (Java und UML-Klassendiagramm

Mehr

Vererbung, Polymorphie

Vererbung, Polymorphie Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 2 Objektorientierte Programmierung 24. 04. 2006 Aufgabe 5 (Vererbung - Trace (Klausur FT

Mehr

Programmierung Nachklausurtutorium

Programmierung Nachklausurtutorium Programmierung Nachklausurtutorium Laryssa Horn, Tim Engelhardt 20 März 2018 Klassen Wofür wir Klassen brauchen: Definieren ein Bauplan eines Objektes Bauplan enthält Attribute und Methoden Klasse Beispiel

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 5. Objekte und Klassen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 5. Objekte und Klassen 1 Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,

Mehr

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter

Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener

Mehr

12 Abstrakte Klassen, finale Klassen und Interfaces

12 Abstrakte Klassen, finale Klassen und Interfaces 12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,

Mehr

Softwaretechnik WS 16/17. Übungsblatt 01

Softwaretechnik WS 16/17. Übungsblatt 01 Softwaretechnik WS 16/17 Übungsblatt 01 Was ist eine Klasse? Definition der Object Management Group: A class describes a set of objects that share the same specifications of features, constraints, and

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren

Mehr

Informatik II Übung, Woche 17

Informatik II Übung, Woche 17 Giuseppe Accaputo 28. April, 2016 1. Vererbung 2. Vorbesprechung Übung 8 Plan für heute 3. Erweiterung des Vorlesungsverzeichnis (VVZ) (Live-Programmierung) Informatik II (D-BAUG) Giuseppe Accaputo 2 Vererbung

Mehr

Kapitel 6. Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen

Kapitel 6. Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen Kapitel 6 Kontrollstrukturen und Methoden im Kontext von Klassendeklarationen Objekte und Klassen 1 Ziele Anweisungen auf den Kontext von Klassendeklarationen erweitern Statische Attribute und Methoden

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 1 15.03.2017 Objektorientierte Programmierung (Studiengang Medieninformatik) Form: Prüfung:

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Vererbung 2 Packages Packages dienen zur Strukturierung von Klassen Computer.java package BEZEICHNER ; package vorlesung7; public class KLASSEN-BEZEICHNER { public

Mehr

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen

Kapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18

Mehr

6. Globalübung (zu Übungsblatt 8)

6. Globalübung (zu Übungsblatt 8) 6. Globalübung (zu Übungsblatt 8) Inhalt: Klassenhierarchien Verdecken von Attributen Überschreiben von Methoden Codeanalyse Analyse von JAVA-Programmen Semestralklausur Klausurtermin: Mittwoch 11.01.2006

Mehr

Tutoraufgabe 1 (Seiteneekte):

Tutoraufgabe 1 (Seiteneekte): Prof. aa Dr. J. Giesl Programmierung WS14/15 C. Aschermann, F. Frohn, J. Hensel, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je 2 Studierenden aus der gleichen Kleingruppenübung

Mehr

Universität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum. E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019

Universität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum. E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019 Universität Hamburg, Fachbereich Informatik Übungsblatt 11 zum Praktikum Arbeitsbereich Wissenschaftliches Rechnen C-Programmierung E. Betke, N. Hübbe, M. Kuhn, J. Lüttgau, J. Squar im WiSe 2018/2019 Einleitung

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.

Vererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5. Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen

14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.

Mehr

14 Abstrakte Klassen, finale Klassen, Interfaces

14 Abstrakte Klassen, finale Klassen, Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse

Mehr

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt

Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung. 6. Übungsblatt Humboldt-Universität zu Berlin Wintersemester 2010/11 Institut für Informatik Grundlagen der Programmierung Prof. Redlich 6. Übungsblatt 21 (+4) Punkte Abgabe bis 31.01.2010 (08:00 Uhr) über GOYA Aufgabe

Mehr

Probeklausur: Programmierung WS04/05

Probeklausur: Programmierung WS04/05 Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 (7. Juni 2012) 1 Besprechung Blatt 6 Fragen 2 Referenzen Referenzsemantik 3 Vererbung Allgemein abstract Interfaces Vererbung in UML 4 Vorbereitung Blatt 7 Anmerkungen Fragen Fragen zu Blatt 6? Referenzsemantik

Mehr

Klassen mit Instanzmethoden

Klassen mit Instanzmethoden Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 3.12.07 G. Bohlender (IANM UNI Karlsruhe) OOP und Klassen 3.12.07

Mehr

Einführung in C# Teil 3. Matthias Nübling

Einführung in C# Teil 3. Matthias Nübling Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Einführung in das Programmieren Probeklausur Lösungen

Einführung in das Programmieren Probeklausur Lösungen Einführung in das Programmieren Probeklausur Lösungen Frederik Kanning 01.07.2013 Aufgabe 1 b/c) void definiert Methode ohne Rückgabewert return beendet aktuellen Methodenaufruf wenn Rückgabetyp nicht

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Einführung in die Programmierung by André Karge Übung - Polymorphie Teil 2 20. Dezember 2018 Einführung in die Programmierung WS18/19 André Karge 1/16 letzte Woche Methoden überladen Generics 20. Dezember

Mehr

Die Welt in unseren Programmen false -1.4E-12. false. Klassen

Die Welt in unseren Programmen false -1.4E-12. false. Klassen Algorithmen und Datenstrukturen Die Welt in unseren Programmen Die Welt in unseren Programmen Wintersemester 2012/13 9. Vorlesung Sortieren von Objekten 1.357374356 25236748458 true "HalloWelt!" 14136.23462

Mehr

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten Fakultät IV Elektrotechnik/Informatik Klausur Einführung in die Informatik II für Elektrotechniker Name:... Matr.-Nr.... Bearbeitungszeit: 10 Minuten Bewertung (bitte offenlassen : ) Aufgabe Punkte Erreichte

Mehr

Java Einführung Abstrakte Klassen und Interfaces

Java Einführung Abstrakte Klassen und Interfaces Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer

Mehr

Rückblick VL Informatik I HS 2018

Rückblick VL Informatik I HS 2018 Rückblick VL Informatik I HS 2018 Vorlesung 2: Zimtsterne Ganze Zahlen, Arithmetische Ausdrücke // Zimsterne Out.print("Wie viele Zimtsterne wollen Sie backen?"); int zimtsterne = In.readInt(); Out.print("Zutaten:

Mehr

Programmieren in Java

Programmieren in Java Einführung in die Objektorientierung Teil 4 Interfaces, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

Algorithmen und Datenstrukturen II

Algorithmen und Datenstrukturen II Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c 2009 D.Rösner

Mehr

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3

Vorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3 Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,

Mehr

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D.

Gliederung. Algorithmen und Datenstrukturen II. Java: Objektorientierung. Java: Objektorientierung. Objektorientierung in JAVA. D. Gliederung Algorithmen und Datenstrukturen II in JAVA D. Rösner Institut für Wissens- und Sprachverarbeitung Fakultät für Informatik Otto-von-Guericke Universität Magdeburg Sommer 2009, 4. Mai 2009, c

Mehr

Beispiel: die Klasse Brüche

Beispiel: die Klasse Brüche Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -138 Beispiel: die Klasse Brüche class Fraction { int num; Int denom; // numerator // denominator Fraction (int n, int d) { num =

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 10: Mehr zur Vererbung und abstrakte Klassen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Mehr zur Vererbung Methoden vererben und überschreiben

Mehr

Grundlagen der Objektorientierung

Grundlagen der Objektorientierung Grundlagen der Objektorientierung Klassen, Attribute, Methoden Kapselung und Konstruktoren Vererbung Packages Interfaces und Adapterklassen 04.06.2008 Marcel Wieczorek 14 Klassen, Attribute, Methoden package

Mehr

Kapitel 5: Objekte und Klassen

Kapitel 5: Objekte und Klassen Einführung in die Informatik: Programmierung und Softwareentwicklung Wintersemester 2018/19 Kapitel 5: Objekte und Klassen Prof. Dr. David Sabel Lehr- und Forschungseinheit für Theoretische Informatik

Mehr

Objektorientierte Anwendungsentwicklung

Objektorientierte Anwendungsentwicklung Name, Vorname Matrikelnummer Klausur zur Vorlesung Objektorientierte Anwendungsentwicklung Krefeld, 16. März 2012 Hinweise: Schreiben Sie Ihren Namen und Ihre Matrikelnummer auf dieses Deckblatt. Die Aufgabenstellung

Mehr

Programmieren in Java -Eingangstest-

Programmieren in Java -Eingangstest- Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 39 Einstieg in die Informatik mit Java Objektorientierte Programmierung und Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 39 1 Überblick:

Mehr

Objektorientierte Programmierung und Klassen

Objektorientierte Programmierung und Klassen Objektorientierte Programmierung und Klassen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 16.5.07 G. Bohlender (IANM UNI Karlsruhe) OOP

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 5. Objekte und Klassen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 5. Objekte und Klassen 1 Kapitel 5 Objekte und Klassen Objekte und Klassen 1 Ziele Grundbegriffe objektorientierter Programmierung kennenlernen Klassen in Java deklarieren können Das Speichermodell für Objekte verstehen Typen,

Mehr

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09 Klausur zur Lehrveranstaltung Technische Informatik für Ingenieure WS 2008/09 23. Februar 2009 Aufgabe 1 2 3 4 5 5 5 Summe mögliche Punkte 10 15 25 20 20 15 15 120 erreichte Punkte Note: Hinweise: Diese

Mehr

Prüfung Softwareentwicklung II (IB)

Prüfung Softwareentwicklung II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 2 B Sommersemester 2016 Prüfung Softwareentwicklung II (IB) Datum : 11.07.2016, 16:30 Uhr Bearbeitungszeit

Mehr

4. Vererbung Die Klasse Object. Die Klasse Object

4. Vererbung Die Klasse Object. Die Klasse Object 4. Vererbung Die Klasse Object Die Klasse Object Alle Klassen ohne explizit deklarierte Superklasse haben die Klasse Object als Superklasse. Object gehört zum Paket java.lang. Object verfügt über einige

Mehr

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor

Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Programmiertechnik Übungen zu Klassen & -methoden

Programmiertechnik Übungen zu Klassen & -methoden Programmiertechnik Übungen zu Klassen & -methoden Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Übung 1 Ein Verfahren, den größten gemeinsamen Teiler (ggt) zweier Zahlen a und b, a

Mehr

Sortieren von Objekten

Sortieren von Objekten Algorithmen und Datenstrukturen Wintersemester 2013/14 18. Vorlesung Sortieren von Objekten Krzysztof Fleszar Lehrstuhl für Informatik I 1 Die Welt in unseren Programmen 1.357374356-4.526426 25236748458

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Theorie zu Übung 8 Implementierung in Java

Theorie zu Übung 8 Implementierung in Java Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept

Mehr

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6

Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Übungen zu Softwareentwicklung 1, WS 2009/10 Übung 6 Name: Abzugeben bis: Mi, 2.12.2009 12:00 Matrikelnummer: Bearbeitungsdauer in Stunden: Nummer der Übungsgruppe: Name des Tutors: Name des Übungsleiters:

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015. Musterlösung Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen

Mehr

Grundelemente objektorientierter Sprachen (1)

Grundelemente objektorientierter Sprachen (1) Grundelemente objektorientierter Sprachen (1) Objekt Repräsentation eines Objektes der realen Welt in der Terminologie objektorientierter Programmiersprachen besitzen Attribute (Eigenschaften), deren Werte

Mehr

Abstrakte Klassen, Interfaces und Pakete

Abstrakte Klassen, Interfaces und Pakete Abstrakte Klassen, Interfaces und Pakete Vorbemerkung: Wir wollen allmählich die Basis für die Entwicklung (einfacher) Spiele in Java schaffen. Dazu erstellen wir in dieser Übung einige Schnittstellen

Mehr

Objektorientierung OOPM, Ralf Lämmel

Objektorientierung OOPM, Ralf Lämmel Ist es nicht offensichtlich, dass die Gurkenscheiben OO repräsentieren? Objektorientierung OOPM, Ralf Lämmel 662 7 neue bzw. ausgeweitete Begriffe 1. Objekt (mehr als die Instanz eines Datentyps) 2. Klasse

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Java Schulung (Java 2 Java Development Kit 5 / 6)

Java Schulung (Java 2 Java Development Kit 5 / 6) 2. Grundlagen der Objektorientierung 2.1 Klassen, Attribute, Methoden Klassen Eine Klasse beschreibt als Bauplan Gemeinsamkeiten einer Menge von Objekten ist also ein Modell, auf dessen Basis Objekte erstellt

Mehr

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015

Probeklausur Java Einführung in die Informatik. Wintersemester 2014/2015 Fakultät IV NI & CV Probeklausur Java Einführung in die Informatik Wintersemester 2014/2015 Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen

Mehr

Aufrufe von Objektmethoden

Aufrufe von Objektmethoden Aufrufe von Objektmethoden SWE-35 Objektmethoden werden für ein bestimmtes Objekt aufgerufen; sie benutzen dessen Objektvariablen: double r = big.getradius (); Methodenaufrufe können auch die Werte von

Mehr

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch) JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

Mehr