Weitere Spielvarianten für mehr Action

Größe: px
Ab Seite anzeigen:

Download "Weitere Spielvarianten für mehr Action"

Transkript

1 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 1 Weitere Spielvarianten für mehr Action In diesem Kapitel lernst du nichts wirklich Neues mehr dazu. Es zeigt dir lediglich ein paar Möglichkeiten auf, wie du dein erstes Spiel etwas aufregender gestalten kannst. Dabei wirst du viel Gelerntes wiederholen. Es ist also eine sehr gute Übung Nach den Anregungen für diverse Spielvarianten folgt noch ein Ausblick auf generelle Überlegungen zur Verbesserung deines Programmierstils. Diese Überlegungen solltest du dir gut ansehen, denn du wirst dein zweites Spiel mit diesen neuen Überlegungen modellieren! Schmetterschläge und Stopps Deine Schläger sollen sich nun auch über eine kleine Distanz hinweg horizontal bewegen lassen. Hierzu dienen links die Tasten 'A' bzw. 'D' und rechts die Pfeiltasten. Wenn der Ball getroffen wird, während sich der Schläger auf den Ball zu bewegt, so soll der Ball in x-richtung schneller werden. Wenn der Ball getroffen wird, während sich der Schläger vom Ball weg bewegt, so soll der Ball in x- Richtung langsamer werden. 1. Überprüfe, ob deine Klasse Schlaeger schon über die Attribute vx und vy verfügt und auch über entsprechende setze- und nenne-methoden. Füge diese bei Bedarf nun hinzu. 2. Füge nun in der Klasse PingPong in der Methode tastereagieren(...) weitere bedingte Anweisungen für die Tasten A, D, Pfeil links und Pfeil rechts hinzu. Hierbei soll vom entsprechenden Schläger-Objekt die Methode setzevx(...) mit dem Übergabe-Parameter +1 bzw. -1 aufgerufen werden. Damit sich die Schläger-Objekte nicht zu weit Richtung Gegner oder gar aus dem Spielfeld heraus bewegen können, wird der zulässige Bewegungsbereich eingeschränkt, wie es ja auch schon für den oberen und unteren Bildschirm-Rand geschehen ist. 1. Sieh in der Klasse Schlaeger im Quellcode der Methode bewegen() nach, wie du das für den oberen und unteren Bildschirm-Rand realisiert hast. 2. Formuliere nun entsprechende bedingte Anweisungen, die deinen linken Schläger im horizontalen Bereich zwischen 0 und 50 Pixel einsperren und entsprechend deinen rechten Schläger im horizontalen Bereich zwischen 750 und 800 Pixel einsperren. Da du innerhalb der Klasse stets für den linken und rechten Schläger gleichzeitig denken musst, tritt bei der bedingten Anweisung ein Problem im Bereich x>50 und x<750 auf. Diese Bedingung trifft nämlich IMMER auf einen der beiden Schläger zu und das ist nicht gewollt! Eine Lösung stellen hier folgende Konstrukte dar: x>50 && x<400 (für den späteren linken Schläger) und x<750 && x>400 (für den späteren rechten Schläger). Dadurch gilt die Bedingung sicher immer nur für den einen Schläger. 3. Zeichne für einen der beiden Fälle ein Sequenz-Diagramm. Berücksichtige dabei nur die Horizontal-Bewegung und lasse die Vertikal-Bewegung für dieses Sequenz-Diagramm außer acht. 4. Wo im Code musst du diese Ergänzungen unterbringen? Setze deine Idee in JAVA um. Überprüfe, ob beide Schläger-Objekte sich genau so verhalten, wie du es dir vorgestellt hast und ändere ggf. deinen Code so lange, bis deine Vorstellungen erfüllt sind.

2 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 2 Noch reagiert der Ball nicht auf diese horizontalen Bewegungen des Schlägers. Um dies zu realisieren, muss in dem Moment, wo der Ball auf den Schläger trifft der Wert von vx des Schläger- Objekts abgefragt werden. 1. Wo im Code hast du das Auftreffen des Balls auf den Schläger realisiert? 2. Beschreibe in Worten, was der Reihe nach geschehen müsste, damit der Ball schneller wird, wenn der Schläger beim Aufprall auf ihn zukommt. 3. Beschreibe in Worten, was der Reihe nach geschehen müsste, damit der Ball langsamer wird, wenn der Schläger beim Aufprall von ihm weg geht. 4. Wo genau im Code würdest du diese Veränderungen einbringen? 1. Schreibe zunächst in der Klasse Ball eine Methode erhoehevx(). Dabei soll der Wert von vx um Eins vergrößert werden, wenn vx positiv ist bzw. um Eins verringert werden, wenn vx negativ ist. Es soll also immer der Betrag um Eins größer werden und das Vorzeichen erhalten bleiben. 2. Schreibe in der Klasse Ball analog eine Methode verringerevx(). Achte bei dieser Methode allerdings darauf, dass der Wert von vx nie kleiner als 1 bzw. größer als -1 wird, sonst bleibt der Ball stehen oder bewegt sich senkrecht! 3. Die Veränderungen in der Methode tick() sollst du hier vorgegeben bekommen, da sich dabei in der Praxis sehr viele kleine Tücken ergeben. Nachdem die beiden Schläger- Objekte bewegt wurden, folgt dieser Code: // Ball trifft linken Schlaeger if ( this.trifft(this.ball, this.links) ) { this.ball.vorzeichenvonvxaendern(); if ( this.links.nennevx() > 0 ) { this.ball.erhoehevx(); else if ( this.links.nennevx() < 0 ) { this.ball.verringerevx(); this.ball.bewegen(); this.ball.bewegen(); // Ball trifft rechtenschlaeger else if ( this.trifft(this.ball, this.rechts) ) { this.ball.vorzeichenvonvxaendern(); if ( this.rechts.nennevx() > 0 ) { this.ball.verringerevx(); else if ( this.rechts.nennevx() < 0 ) { this.ball.erhoehevx(); this.ball.bewegen(); this.ball.bewegen(); this.ball.bewegen(); // Ball links und rechts im Aus... Wenn du genau hinsiehst, dann bemerkst du, dass im Falle eines Zusammentreffens von Ballund Schläger-Objekt die Methode bewegen des Balls-Objekts 3 Mal aufgerufen wird. Dies ist eine Reaktion auf lästige Spielfehler, die plötzlich bei Schmetterschlägen aufgetreten sind...

3 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 3 Rahmen-Abpraller Wenn das Ball-Objekt ein Schläger-Objekt sehr nahe am oberen Rand trifft, so soll die Geschwindigkeit in y-richtung verringert werden. Hierdurch prallt der Ball weiter nach oben (bzw. weniger weit nach unten) ab, als es nach dem Gesetz Einfallswinkel gleich Ausfallswinkel der Fall wäre. Trifft das Ball-Objekt eines der Schläger-Objekte nahe am unteren Ende, so soll die Geschwindigkeit in y-richtung erhöht werden. Hierdurch prallt der Ball weiter nach unten (bzw. weniger weit nach oben) ab, als es nach dem Gesetz Einfallswinkel gleich Ausfallswinkel der Fall wäre. Hierzu sollten in der Klasse Schlaeger zwei Methoden zur Verfügung gestellt werden, welche auf die Übergabe einer y-koordinate (z.b. der Des Ball-Objekts) antworten, ob der Schläger am oberen (bzw. unteren) Rand getroffen worden ist. 1. Beschreibe zunächst in Worten, wie innerhalb der Klasse Schlaeger diese Frage beantwortet werden kann, wenn die x-koordinate des Balls bekannt ist. 2. Welcher Daten-Typ ist hier für die Antwort geeignet? 3. Was muss dieser Methode als Übergabe-Parameter übergeben werden? 1. Schreibe nun in der Klasse Schlaeger diese beiden Methoden. 2. Wenn keine Übersetzungsfehler mehr auftreten, dann erzeuge ein Schläger-Objekt und teste die neue Methode durch Rechtsklick auf die Objekt-Karte. Teste mit mindestens 3 verschiedenen Übergabe-Parametern! Diese beiden Methoden kannst du nun in der Klasse PingPong innerhalb der Methode tick() benutzen, um die Rahmen-Abpraller in deinem Spiel zu realisieren. 1. Überlege, wo genau in der Methode tick() du diese neue Methode der Schläger-Objekte aufrufen musst. 2. Überlege außerdem, wie du dann auf die Antwort reagieren musst, damit es tatsächlich zu einem Rahmen-Abpraller kommt. Welches Attribut musst du wann bei welchem Objekt verändern? 1. Setze deine Ideen nun in Code um. 2. Wenn es keine Übersetzungsfehler mehr gibt, dann starte dein Spiel und teste, ob sich alles so verhält, wie du es dir vorgestellt hast. Spiele nun ein Wenig mit deinem Sitznachbarn, sofern er/sie das Problem ebenfalls schon gelöst hat Das habt ihr euch nun wirklich verdient!

4 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 4 Angeschnittene Bälle Hierzu braucht der Ball ein neues Attribut spin. Ein Spin von 1 bedeutet, dass sich der Ball gegen den Uhrzeigersinn dreht, ein Spin von -1 bedeutet Drehung im Uhrzeigersinn. Bewegt sich ein Schläger nach oben oder unten, während er den Ball trifft, so bekommt der Ball einen entsprechenden Spin. Bei einer Reflexion am oberen oder unteren Bildschirmrand wird der Ball entsprechend seinem Spin dann nicht dem Gesetz Einfallswinkel gleich Ausfallswinkel gehorchen. Nach einer Reflexion oben oder unten wird der Spin wieder auf 0 zurück gesetzt. Mit der Umsetzung dieser Idee möchten wir dich ganz bewusst alleine lassen! Denn zu einem guten Programmierer gehört auch die Fähigkeit, ein Problem ohne fremde Hilfe zu durchdenken, zu modellieren und schließlich in Code umzusetzen. Gehe grundlegend genauso vor, wie bei allen bisherigen Problemen auch... Eine ausführbare Datei erstellen Das fertige Spiel, welches du dir von der Website engine-alpha.org herunter laden kannst, ist eine Datei mit der Endung.jar. Zum Starten des Spiels benötigst du kein BlueJ. Du musst diese Datei entweder nur doppelt anklicken oder rechts klicken und dann mit Java öffnen. Nun sollst du lernen, wie man so etwas realisieren kann. Es ist ganz einfach, denn BlueJ hilft dir dabei. 1. Schreibe in der Klasse PingPong eine letzte Methode wie hier angegeben: public static void main (String[] args) { new PingPong(); Den genauen Sinn und die Funktionsweise dieser Methdode kannst du noch nicht vollständig erfassen. Dies folgt später. 2. Klicke im BlueJ-Fenster im Hauptmenü auf Projekt / Als jar-archiv speichern. Nimm im Darauf folgenden Fenster folgende Einstellungen vor: Klicke dann auf weiter und speichere im folgenden Fenster dein jar-archiv an einem Ort deiner Wahl. Wähle einen Namen. Hierdurch gibst du an, in welcher Klasse sich diese neue main-methode befindet. Diese wird automatisch beim Starten des jar-archivs gestartet. Ihr einziger Inhalt ist das Erzeugen eines neuen Spiel-Objekts. Die Bibliothek engine-alpha_versionxxx.jar musst du einbinden, da sonst diesem Archiv die Funktionen der Engine-Alpha nicht bekannt sind. Diese kannte bisher ja nur deine BlueJ-Installation.

5 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 5 Ausblick Vererbung Du hast dein erstes Spiel nun fertig gestellt und dabei eine ganze Menge gelernt: Klassen mit einfachen Attributen (int, boolean, ) und Referenz-Attributen (KREIS, ) Konstruktoren mit und ohne Übergabe-Parameter Methoden mit und ohne Rückgabe, mit und ohne Übergabe-Parameter Fallunterscheidungen das Prinzip eines Interfaces Da du dein Spiel allerdings anfangs ohne jedwede Grundkenntnisse erstellt hast, ist die Planung dieses ersten Spiels aus Sicht eines erfahrenen Programmierers nicht besonders vollkommen. Wir wollen nun das fertige Spiel noch einmal reflektieren und dabei möchten wir dir zeigen, wie du dein zweites Spiel bereits von vorne herein etwas eleganter und damit weniger aufwändig konzipieren kannst Gemeinsamkeiten von Klassen erkennen und nutzen Betrachte doch einmal ganz genau die Klassen Ball und Schlaeger und suche nach Gemeinsamkeiten: 1. Welche Attribute kommen in beiden Klassen gemeinsam vor? 2. Welche Methoden kommen in beiden Klassen gemeinsam vor. Sieh dir nun in deinen Java-Klassen die Rümpfe der entsprechenden Methoden an und vergleiche, was davon bei beiden Klassen identisch ist. Bei der Beantwortung dieser Fragen wirst du feststellen, dass wir sehr oft denselben Code in beiden Klassen stehen haben. Wäre es da nicht schön, ihn nur einmal schreiben zu müssen? Stelle dir nun vor, du hast plötzlich eine bessere Idee für eine Methode. Wäre es nun nicht ebenfalls schön, diese Änderung nur einmal schreiben zu müssen. Stelle dir weiter vor, du hättest nicht nur zwei sondern z.b. zehn Klassen. Könnten sich da nicht eventuell Fehler einschleichen, während man versucht, zehn Mal dasselbe zu schreiben oder abzuändern? Wie genial wäre in diesem Fall eine Möglichkeit, alles Gleiche nur einmal schreiben bzw. abändern zu müssen! Das lässt sich tatsächlich sehr einfach verwirklichen...

6 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 6 Konkrete Unterklassen erben von abstrakten Unterklassen Die Technik, die du hierzu neu lernen musst, nennt man Vererbung: Alles Gemeinsame wird in einer einzigen (abstrakten) Oberklasse verankert. Davon leitet man nun die speziellen Unterklassen ab und ergänzt nur das, was neu hinzu kommt. erbt von erbt von Die Vererbung wird im Klassen-Diagramm durch Pfeile mit dreieckiger Spitze symbolisiert. In der abstrakten Klasse Spielfigur sind alle Attribute und Methoden vereint, welche in beiden Klassen Ball und Schlaeger auf gleiche Art und Weise vorkommen. Die Klassen Ball und Schlaeger sind eine Sonderform (Erweiterung) der allgemeinen Klasse Spielfigur. In den Klassen Ball und Schläger müssen nur noch die neu hinzu gekommenen Methoden geschrieben werden. Sie verfügen über alle Attribute und Methoden der Klasse Spielfigur und zusätzlich über die speziellen eigenen Attribute und Methoden. Man sagt entweder: Die Klassen Ball und Schlaeger erben von der Klasse Spielfigur. Oder man sagt: Die Klassen Ball und Schlaeger erweitern die Klasse Spielfigur.

7 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 7 Vererbung in JAVA Vererbung in JAVA ist nicht schwer! Es gibt nur drei Dinge zu beachten: Eine abstrakte Klasse erstellt man mit Hilfe des Schlüsselworts abstract : public abstract class Spielfigur { Private Attribute müssen in abstrakten Klassen als protected deklariert werden: public abstract class Spielfigur { protected int x; protected int y; protected String farbe; Eine Klasse erbt von einer anderen Klasse mit Hilfe des Schlüsselworts extends : public class Ball extends Spielfigur { private int radius; Beachte, dass protected NUR in den Überklassen verwendet wird. In den Unterklassen wird wieder ganz normal private verwendet. Hier nun einige Code-Beispiele: public abstract class Spielfigur { protected int x; protected int y; protected int vx; protected int vy; protected String farbe; public Spielfigur(int x, int y, int vx, int vy, String farbe) { this.x = x; this.y = y; this.vx = vx; this.vy = vy; this.farbe = farbe; //Getter-Methoden public int nennex() { return this.x; // Setter-Methoden public void setzex(int x) {

8 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 8 this.x = x; // weitere selbst geschriebene Methoden public void bewegen() { this.x = this.x + this.vx; this.y = this.y + this.vy; public class Ball extends Spielfigur { private int radius; public Ball(int x, int y, int vx, int vy, String farbe, int radius) { super(x, y, vx, vy, farbe); this.radius = radius; // neue Getter-Methode public int nenneradius() { return this.radius; // neue Setter-Methode public void setzeradius(int radius) { this.radius = radius; // weitere neue Methoden public void erhoehevx() { if (this.vx > 0) { this.vx = this.vx + 1; else if (this.vx < 0) { this.vx = this.vx 1; public void verringerevx() { if (this.vx > 1) { this.vx = this.vx 1; else if (this.vx < -1) { this.vx = this.vx + 1; Aufruf des Konstruktors der Oberklasse mit super(...) Dies MUSS der erste Befehl sein! Auch hier wird vermieden, Code zwei Mal zu schreiben! Beachte die Befehls-Zeile super( )! Mit super( ) wird immer der geerbte Konstruktor aufgerufen, der dann alle geerbten Attribute initialisiert, so dass man diese Code nicht doppelt schreiben muss. Der Aufruf von super( ) MUSS der erste Befehl im Rumpf des neuen Konstruktors sein!

9 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 9 Selbstkontrolle: Hast du auch alles verstanden? dann kannst du bestimmt die folgenden Fragen ohne Probleme beantworten. Wenn nicht, dann arbeite das entsprechende Teil-Kapitel noch einmal durch Nimm dir etwas Zeit und versuche alle neu gelernten Fachbegriffe in eigenen Worten zu erklären: Vererbung, Oberklasse Unterklasse, erben, erweitern, super-konstruktor Ergänze hierzu dein Vokabelheft ergänze bei Bedarf eigene Beispiele Wozu dient das Prinzip der Vererbung? Wie stellt man Vererbung in einem Klassen-Diagramm dar? Wie kennzeichnet man abstrakte Klassen in einem Klassen-Diagramm? Mit welchem Schlüsselwort macht man eine Klasse abstrakt? Mit welchem Schlüsselwort erbt man von einer anderen Klasse? Mit welchem Schlüsselwort definiert man private Attribute in abstrakten Klassen? Was leistet der Aufruf von super( )? Wo muss dieser Aufruf immer stehen? Was kommt in die Klammern dieses Aufrufs?

10 Inf-10 NTG Objektorientiertes Programmieren Teil 4 O S t R M i c h a e l G a n s h o r n 10 Ausblick In einem zweiten Spiel wirst du lernen alles bisher Gelernte noch einmal anzuwenden, das Prinzip der Vererbung in deine Planung einzubeziehen, eindimensionale Felder (Arrays) kennen lernen, um viele Attribute desselben Daten-Typs zu verwalten, zweidimensionale Felder (Arrays) kennen lernen, um schachbrettartige Strukturen zu verwalten, das Spiel Snake zu modellieren und zu programmieren, damit der Spaß-Faktor erhalten bleibt.

2. Vererbung und Kapselung

2. Vererbung und Kapselung 2. Vererbung und Kapselung Die Objekte der Klasse BALL werden im Gegensatz zu den Objekten von KREIS noch nicht graphisch dargestellt. Um die BALL-Objekte auch graphisch darzustellen zu können, muss BALL

Mehr

Objektorientierte Analyse Teil IV

Objektorientierte Analyse Teil IV Inf-10 NTG Objektorientiertes Programmieren Teil 3 O S t R M i c h a e l G a n s h o r n 1 Objektorientierte Analyse Teil IV Viele Situationen, in denen Objekte miteinander kommunizieren müssen, sind Standard.

Mehr

Inf-10 NTG Objektorientiertes Programmieren Projekt PingPong OStR Michael Ganshorn 1 Michael Andonie

Inf-10 NTG Objektorientiertes Programmieren Projekt PingPong OStR Michael Ganshorn 1 Michael Andonie Inf-10 NTG Objektorientiertes Programmieren Projekt PingPong OStR Michael Ganshorn 1 JAVA-Projekt : Das Spiel PingPong Eines der ersten Computerspiele war Ping-Pong. Zwei Rechtecke dienen als Schläger,

Mehr

Klassen-Diagramm. spielt mit > 1. schlägt mit > 1. hat als Rand > enthält > 1. besteht aus >

Klassen-Diagramm. spielt mit > 1. schlägt mit > 1. hat als Rand > enthält > 1. besteht aus > Inf-10 NTG Objektorientiertes Programmieren Proje kt Breakout StR ef F l ori an Fuc hs, OSt R Mic hae l Ganshorn 1 JAVA-Projekt : Das Spiel Breakout Eines der beliebtesten Spiele der späten 1970er Jahre

Mehr

3. Bedingte Anweisungen

3. Bedingte Anweisungen 3. Bedingte Anweisungen Fallunterscheidungen der Form WENN...DANN... in der Informatik kennst du aus der 7. Klasse beim Programmieren mit Karol sowie aus der 9. Klasse beim Arbeiten mit Tabellen und Datenbanken.

Mehr

Objektorientierte Analyse Teil II

Objektorientierte Analyse Teil II Inf-10 NTG Objektorientiertes Programmieren Te il 2 O St R Michae l G anshor n 1 Objektorientiertes Programmieren Teil 2 Objektorientierte Analyse Teil II Spiele noch einmal das Spiel PingPong mit deinem

Mehr

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen.

Staubsauger-Roboter. Als Vorlage dienen dir drei Klassen: RECHTECK Damit kannst du die Wände des Raums darstellen. Projekt: Staubsauger-Roboter Immer beliebter werden die kleinen automatischen Haushaltshilfen. Du sollst nun einen Staubsauger-Roboter programmieren, der gesteuert von einer künstlichen Intelligenz (KI)

Mehr

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus

Vererbung. Generalisierung und Spezialisierung Vererbung und Polymorphismus Vererbung Generalisierung und Spezialisierung Vererbung und Polymorphismus Wir wollen in unserem Aquarium verschiedene Arten von Fischen schwimmen lassen. In einem ersten Ansatz definieren wir nicht nur

Mehr

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG

ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG ÜBUNGEN ZUR OBJEKTORIENTIERTEN MODELLIERUNG Unter objektorientierter Modellierung versteht man das detailgetreue Darstellen einer zu programmierenden Szene durch Skizzen in UML. UML steht für Unified Modelling

Mehr

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1

9. Vererbung und Polymorphie. Informatik Vererbung und Polymorphie 1 9. Vererbung und Polymorphie 1 Wiederholung Vererbung bedeutet, dass eine Klasse Attribute und Methoden an eine andere Klasse weitergeben kann. Im Klassendiagramm stellt man dies durch einen durchgezogenen

Mehr

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java

Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java Informatik 10 Objektorientiertes Modellieren und Programmieren mit Java 1. Klassen und Objekte Zunächst wollen wir mit Hilfe eines Miniprogramms die Entwicklungsumgebung BlueJkennen lernen. Die Installation

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

In der heutigen Betrachtungsweise der Informatik besteht die Welt aus Objekten. Jedem Objekt liegt ein Bauplan zugrunde, nach dem es erstellt wurde.

In der heutigen Betrachtungsweise der Informatik besteht die Welt aus Objekten. Jedem Objekt liegt ein Bauplan zugrunde, nach dem es erstellt wurde. Inf-10 NTG O O M / O O P J A V A - G r u n d l a g e n O S t R M i c h a e l G a n s h o r n 1 Wiederholung In der heutigen Betrachtungsweise der Informatik besteht die Welt aus Objekten. Jedem Objekt

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

Wir wollen im Folgenden dieses uralte Spiel aus objektorientierter Sichtweise analysieren und es Stück für Stück programmieren.

Wir wollen im Folgenden dieses uralte Spiel aus objektorientierter Sichtweise analysieren und es Stück für Stück programmieren. Inf-10 NTG Objektorientiertes Programmieren Projekt PingPong O St R Michae l G anshor n 1 JAVA-Projekt : Das Spiel PingPong Eines der ersten Computerspiele war Ping-Pong. Zwei Rechtecke dienen als Schläger,

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

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Anwendung Kamel-Simulation

Anwendung Kamel-Simulation Anwendung Kamel-Simulation (Nach einer Idee von Christian Wendl) Normale Kamele haben die Eigenschaften Alter, Gewicht, Name und Darstellung (für die Darstellung wählen wir ein WECHELSBILD). Durch Züchtung

Mehr

Klassen-Diagramm. Grund-Erfahrung mit der EDU-Variante der Engine-Alpha http://engine alpha.org Felder Deklaration und Initialisierung, Zugriff

Klassen-Diagramm. Grund-Erfahrung mit der EDU-Variante der Engine-Alpha http://engine alpha.org Felder Deklaration und Initialisierung, Zugriff Inf-10 NTG Objektorientiertes Programmieren Proje kt Bre akout StR ef F l ori an Fuc hs, OSt R Mic hae l Ganshorn 1 JAVA-Projekt : Das Spiel Breakout Eines der beliebtesten Spiele der späten 1970er Jahre

Mehr

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code:

7. Arrays. Beim Deklarieren und Initialisieren der Liste bräuchte man oft zueinander sehr ähnlichen Code: 7. Arrays Gelegentlich braucht man für ein Programm mehrere Attribute desselben Datentyps oder derselben Klasse. Beispiel: In der Highscore-Liste eines Spiels werden von den 10 besten Spielern die Namen

Mehr

Java für Bauingenieure

Java für Bauingenieure 1 JAVA für Bauingenieure Alexander Karakas SS 2008 Objektorientierte Programmierung 30.04.2008, CIP Pool Objektorientierte Programmierung Übersicht 2 Klasse und Objekt Polymorphismus und Vererbung Klassen

Mehr

14. Java Objektorientierung

14. Java Objektorientierung Objektorientierung: Verschiedene Aspekte Daten Typhierarchie Objekte 14. Java Objektorientierung Code Vererbung Unter- und Oberklassen Klassen, Vererbung, Kapselung Methoden überschreiben Unterklassen

Mehr

Projekt: Staubsauger-Roboter

Projekt: Staubsauger-Roboter Projekt: Staubsauger-Roboter Ziel: Programmiere einen Staubsauger-Roboter, der von einer einfachen künstlichen Intelligenz (KI) gesteuert wird und dabei den Boden eines Raumes reinigt. Hinweise: Die Anleitung

Mehr

14. Java Objektorientierung. Klassen, Vererbung, Kapselung

14. Java Objektorientierung. Klassen, Vererbung, Kapselung 427 14. Java Objektorientierung Klassen, Vererbung, Kapselung Objektorientierung: Verschiedene Aspekte 428 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen

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

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch

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

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1

Vererbung P rogram m ieren 2 F örster/r iedham m er K apitel 11: V ererbung 1 Vererbung 1 11.1 Motivation und Begriffsdefinitionen 11.2 Vorgehensweise und Implementierung 11.3 Arten von Vererbung 11.4 Konstruktoren 11.5 Abstrakte Klasse 11.6 Verschattung 11.7 Wurzelklasse Object

Mehr

PROCESSING ELTERN UND KINDER. Created by Michael Kirsch & Beat Rossmy

PROCESSING ELTERN UND KINDER. Created by Michael Kirsch & Beat Rossmy PROCESSING ELTERN UND KINDER Created by Michael Kirsch & Beat Rossmy INHALT 1. Rückblick 1. Processing Basics 3. Anwendung 1. extends 2. Klassen 2. implements 2. 3. 1. Objekte Theorie Es gibt ja nicht

Mehr

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types)

Objektorientierte Programmierung. Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass: OOP (Java), 22. Aufzählungstypen 1/20 Objektorientierte Programmierung Kapitel 22: Aufzählungstypen (Enumeration Types) Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester

Mehr

Programmieren in Java

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

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

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 11: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

hue13 January 30, 2017

hue13 January 30, 2017 hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

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

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer

Einführung in die Programmierung I. 11. Vererbung. Stefan Zimmer Einführung in die Programmierung I 11. Vererbung Stefan Zimmer 21.1.2008 Programmcode wiederverwenden Wenn wir einige Klassen geschrieben haben, werden wir dabei Teile davon öfters hingeschrieben haben

Mehr

G 8 Inf- 10 O S tr Michae l Gansh orn 45. Vererbung stellt man im Klassen-Diagramm durch einen durchgezogenen Pfeil mit einem Dreieck als Spitze dar.

G 8 Inf- 10 O S tr Michae l Gansh orn 45. Vererbung stellt man im Klassen-Diagramm durch einen durchgezogenen Pfeil mit einem Dreieck als Spitze dar. G 8 Inf- 10 O S tr Michae l Gansh orn 45 Vererbung Teil 2 Wiederholung Vererbung stellt man im Klassen-Diagramm durch einen durchgezogenen Pfeil mit einem Dreieck als Spitze dar. H U N D erbt von P U D

Mehr

1 Grundlagen der Objektorientierung

1 Grundlagen der Objektorientierung Kapitel 1 Grundlagen der Objektorientierung Seite 1/8 1 Grundlagen der Objektorientierung Dieses Kapitel stellt eine solide, pragmatische Einführung in die fundamentalen Konzepte der Objektorientierung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article

2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article 2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String

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

Beziehungen zwischen Objekten

Beziehungen zwischen Objekten Beziehungen zwischen Objekten M. Jakob Gymnasium Pegnitz 2. Februar 2015 Inhaltsverzeichnis 1 Aggregation und Referenzen 1.1 Begriffsbildung 1.2 Umsetzung in Java 2 Sequenzdiagramme 1 Gliederung 1 Aggregation

Mehr

Begriffe 1 (Wiederholung)

Begriffe 1 (Wiederholung) Begriffe 1 (Wiederholung) Klasse Eine Klasse ist der Bauplan für ein oder mehrere Objekte. In einer Klasse werden Dienste (Methoden) zur Verfügung gestellt. Klassennamen beginnen mit einem Großbuchstaben.

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

O b j e k t - O r i e n t i e r t e s P r o g r a m m i e r e n Te i l I

O b j e k t - O r i e n t i e r t e s P r o g r a m m i e r e n Te i l I 1 O b j e k t - O r i e n t i e r t e s P r o g r a m m i e r e n Te i l I Das Spiel Ping Pong Eines der ersten Computerspiele war Ping-Pong. Zwei Rechtecke als Schläger, ein Kreis als Ball, der Monitor

Mehr

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer Universität zu Lübeck Institut für Telematik Prof. Dr. Stefan Fischer Probeklausur im Fach Programmieren Hinweise zur Bearbeitung: Es sind keinerlei Hilfsmittel zugelassen. Diese Klausur umfasst 18 Seiten.

Mehr

3. Das erste eigene Programm mit Greenfoot: Litte Crab

3. Das erste eigene Programm mit Greenfoot: Litte Crab Eigenes Programm: Little Crab1, Seite 1 von 5 3. Das erste eigene Programm mit Greenfoot: Litte Crab 3.1. Quelltext bearbeiten Nachdem Sie etwas Erfahrungen in der Bedienung von Greenfoot gewonnen haben,

Mehr

Kapitel 10 Mampfi im Labyrinth

Kapitel 10 Mampfi im Labyrinth Kapitel 10 Mampfi im Labyrinth Seite 1 / 7 Kapitel 10 Mampfi im Labyrinth Lernziele: In diesem Kapitel kommen keine neuen fachlichen Inhalte vor, sondern es werden alte (Beziehung, Objektkommunikation,

Mehr

- EINSTIEG IN JAVA - (1/5) Datum:

- EINSTIEG IN JAVA - (1/5) Datum: - EINSTIEG IN JAVA - (1/5) Datum: 2.2 Wir lernen die Programmiersprache Java und entwickeln ein Computerspiel Schritt #1: Constructor-Methoden: Wir setzen die beiden Spieler in die 'Welt' (das Spielfeld)

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Programmierkurs C++ Abstrakte Klassen und Methoden

Programmierkurs C++ Abstrakte Klassen und Methoden Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double

Mehr

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe:

Schlussendlich geben wir die Listen aus. Es kommt zu folgender Ausgabe: Musterlösung Übung 7 Aufgabe 1 Sehen wir uns zu allererst das gegebene Forth Programm an: 0 3 new - list constant list1 list1 5 new - list constant list2 list1 6 new - list constant list3 list2 2 new -

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden Kapitel 8 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Methoden Überladen von Methoden Der this-zeiger Konstruktoren Vererbung WS 07/08

Mehr

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme

UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme UNIVERSITÄT SIEGEN Fachbereich 12, Elektrotechnik und Informatik Fachgruppe Betriebssysteme / verteilte Systeme Musterklausur zur Einführung in die Informatik II 1. Teilklausur, 23.06.2006 Bitte lesen

Mehr

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel Beispiel (3) Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Probleme des Implementierungsvorschlags:

Mehr

Kapitel 12 Die Monster Lernziele: In diesem Kapitel wird die Vererbung als zentrales Element objektorientierter Programmierung vorgestellt.

Kapitel 12 Die Monster Lernziele: In diesem Kapitel wird die Vererbung als zentrales Element objektorientierter Programmierung vorgestellt. Kapitel 12 Die Monster Seite 1 / 16 Kapitel 12 Die Monster Lernziele: In diesem Kapitel wird die Vererbung als zentrales Element objektorientierter Programmierung vorgestellt. 12.0 Neue Symbolklassen Folgende

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017

Probeklausur Java Einführung in die Informatik. Wintersemester 2016/2017 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2016/2017 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

Mehr

Informatik I Eprog HS12

Informatik I Eprog HS12 software evolution & architecture lab Informatik I Eprog HS12 Übung 11 1 Aufgabe: Interfaces & Visitor-Pattern 1.1 Lernziele 1. Die Verwendung von Interfaces trainieren. 2. Das Visitor Design-Pattern kennenlernen.

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

Space Shooter. Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.

Space Shooter. Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen. Space Shooter 1. Grundlegende Funktionen Lade das Szenario SpaceShooter-0. In diesem Spiel soll zunächst nur Folgendes geschehen: Die Gesteinsbrocken sollen sich von selbst von rechts nach links bewegen.

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 432 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 433 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

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

Polymorphie. 15. Java Objektorientierung II

Polymorphie. 15. Java Objektorientierung II 446 Polymorphie 15. Java Objektorientierung II Objektorientierung: Verschiedene Aspekte 447 Daten Typhierarchie Objekte Code Vererbung Unter- und Oberklassen Methoden überschreiben Unterklassen zuweisen

Mehr

Kapitel 14 Das Labyrinth optimieren

Kapitel 14 Das Labyrinth optimieren Kapitel 14 Das Labyrinth optimieren Seite 1 / Kapitel 14 Das Labyrinth optimieren Lernziele: Erstellen mehrerer Methoden mit gleichem Namen in einer einzigen Klasse Vertiefungen zur Objektkommunikation.

Mehr

Kapitel 1: Die ersten Schritte 1

Kapitel 1: Die ersten Schritte 1 Kapitel 1: Die ersten Schritte Thema: Programmieren Seite: 1 Kapitel 1: Die ersten Schritte 1 Starten Sie Eclipse. Importieren Sie das Eclipse-Projekt scenarios-chapter-1. Gehen Sie in den Unterordner

Mehr

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe.

Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe. Was du ererbt von Deinen Vätern hast, erwirb es, um es zu besitzen. J. W. v. Goethe http://www.zitate-online.de/autor/goethe-johann-wolfgang-von/ http://www.weimar-lese.de/files_weimar_lese/johann_wolfgang_von_goethe_bearbeitet_von_andreas_werner.jpg

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

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018

Probeklausur Java Einführung in die Informatik. Wintersemester 2017/2018 Fakultät IV NI & CV Java Einführung in die Informatik Wintersemester 2017/2018 Hinweis: Diese ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der schriftlichen Prüfung des Moduls Einführung

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

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Dr. Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-16-17/infoeinf WS16/17 Action required now

Mehr

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH 1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch

Mehr

Propädeutikum Programmierung in der Bioinformatik

Propädeutikum Programmierung in der Bioinformatik Propädeutikum Programmierung in der Bioinformatik Java Klassen und Objekte Thomas Mauermeier 27.11.2018 Ludwig-Maximilians-Universität München Rückblick Imperative Programmierung Variablen Fallunterscheidungen

Mehr

Kapitel 17 Monster als neue Spielfiguren

Kapitel 17 Monster als neue Spielfiguren Kapitel 17 Monster als neue Spielfiguren Seite 1 / 19 Kapitel 17 Monster als neue Spielfiguren Lernziele: In diesem Kapitel wird die Vererbung als zentrales Element objektorientierter Programmierung vorgestellt.

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

Mehr

5. Abstrakte Klassen

5. Abstrakte Klassen 5. Abstrakte Klassen Beispiel 5. Abstrakte Klassen Angenommen, wir wollen die folgende Klassenhierarchie implementieren: Vogel Amsel Drossel Fink Peter Becker, Programiersprache Java FH Bonn-Rhein-Sieg,

Mehr

Statische Methoden, Vererbung, Benutzereingabe

Statische Methoden, Vererbung, Benutzereingabe Statische Methoden, Vererbung, Benutzereingabe Dr. Philipp Wendler Zentralübung zur Vorlesung Einführung in die Informatik: Programmierung und Softwareentwicklung WS18/19 https://www.sosy-lab.org/teaching/2018-ws-infoeinf/

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

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Musterübung 09: Vererbung und Dynamische Bindung

Musterübung 09: Vererbung und Dynamische Bindung 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

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Umsetzung einer Klassenkarte in einer Programmiersprache

Umsetzung einer Klassenkarte in einer Programmiersprache Klassen in Java Umsetzung einer Klassenkarte in einer Programmiersprache Objektorientierte Programme bestehen (nur) aus Klassendefinitionen In Klassendefinitionen wird die Struktur der Objekte festgelegt,

Mehr

9. Zurück zur OOP: Vererbung und Polymorphismus

9. Zurück zur OOP: Vererbung und Polymorphismus bertram.hafner@t-online.de Informatik 11 Seite 38 9. Zurück zur OOP: Vererbung und Polymorphismus Eine neue Klasse wird immer durch Vererbung aus einer bereits vorhandenen Klasse abgeleitet. Durch die

Mehr

6. Wiederholungen und Zählschleifen

6. Wiederholungen und Zählschleifen 6. Wiederholungen und Zählschleifen Wiederholungen und Zählschleifen kennst du aus der 7. Klasse vom Programmieren mit Karol. Zählschleifen: Im Struktogramm wird der der Teil, der eingerückt ist, wiederholt.

Mehr

Quelle: programmierung/scratch. Wiederholungen. Informatik AG Goetheschule Dieburg Christian Wach

Quelle:  programmierung/scratch. Wiederholungen. Informatik AG Goetheschule Dieburg Christian Wach + Quelle: http://www.inf-schule.de/ programmierung/scratch Wiederholungen Informatik AG + Wiederholungen in Scratch n Wir haben in den letzten Wochen hin und wieder Wiederholungen in Scratch verwendet.

Mehr

Beziehungen zwischen Objekten

Beziehungen zwischen Objekten M. Jakob Gymnasium Pegnitz 10. Dezember 2014 Inhaltsverzeichnis 3 / 15 Beispiel Stadt und Land Objekte einer Klasse (hier LAND) können als Attribute Objekte einer anderen Klasse (hier hauptstadt der Klasse

Mehr

Kapitel 9 Das Labyrinth

Kapitel 9 Das Labyrinth Kapitel 9 Das Labyrinth Seite 1 / 12 Kapitel 9 Das Labyrinth Lernziel: Wiederholung: eindimensionales Feld, Wiederholung mit fester Anzahl neu: Feld mit Objektreferenzen, zweidimensionales Feld 9.1 Felder

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen

Mehr