Java Grundlagen 2 - OOP

Größe: px
Ab Seite anzeigen:

Download "Java Grundlagen 2 - OOP"

Transkript

1 Institut für Programmierung und Reaktive Systeme Java Grundlagen 2 - OOP Markus Reschke

2 Eine kleine Geschichte 1 Spezifikation Es sollen Formen in einer GUI angezeigt werden: Ein Quadrat, ein Kreis und ein Dreieck. Wenn der Benutzer auf eine Form klickt, so soll diese sich um 360 drehen und es soll eine AIF Audiodatei abgespielt werden, welche für jede Form eine andere ist. Zwei Programmierer: Larry und Brad Wer zuerst liefert, bekommt einen neuen Bürostuhl. Larry arbeitet prozedual Brad arbeitet objektorientiert 1 Entnommen aus Head First Java - Second Edition, Kapitel 2

3 Die erste Version Larry überlegt sich: Was muss das Programm machen? Welche Methoden werden dazu gebraucht? rotate und playsound rotate ( shapenum ) { // Rotiere Form um 360 Grad } playsound ( shapenum ) { // Schau nach, welche AIF zur Form gehoert // Spiele Datei ab } Brad überlegt sich: Welche Dinge tauchen im Programm auf? Die Formen, aber auch der User, der Click, der Sound etc. (diese werden hier vernachlässigt) class Triangle { rotate () { // Drehe ein Dreieck } playsound () { // Spiele AIF fuer ein Dreieck ab } } class Circle { rotate () { // Drehe einen Kreis } playsound () { // Spiele AIF fuer einen Kreis ab } } class Square { rotate () { // Drehe ein Rechteck } playsound () { // Spiele AIF fuer ein Rechteck ab } }

4 Aber... Larry wird als erster fertig. Aber es gibt eine Änderung der Spezifikation: Erweiterung der Spezifikation Es soll nun eine amöbenartige Form in der GUI geben. Wenn sie angeklickt wird, soll sie sich wie die anderen Formen drehen und eine HIF Sounddatei abspielen. (Bild aus HFJ)

5 V2 Larry muss zwar nicht viel an seinem Code ändern, aber er muss bereits getesteten und erprobten Code ändern. 1 playsound ( shapenum ) { 2 if (/* Form ist keine Amoebe */) { 3 // Schau nach, welche AIF zur Form gehoert 4 // Spiele Datei ab 5 } else { 6 // Spiele Amoeben HIF Sounddatei ab 7 } 8 } Brad schreibt eine neue Klasse für die Amöbe. Den bereits existierenden Code für die anderen Formen muss er nicht anfassen. 1 class Amoeba { 2 rotate () { 3 // Drehe Amoebe 4 } 5 playsound () { 6 // Spiele HIF fuer ein Amoebe ab 7 } 8 }

6 Der Projektmanager schlägt wieder zu Larry wird wieder als erster fertig. Aber es noch gibt eine Änderung der Spezifikation: Änderung der Spezifikation Brad und Larry haben die Amöbe um den Mittelpunkt des kleinsten Rechtecks um die Amöbe gedreht. Die Amöbe soll sich um einen frei festlegbaren Punkt drehen. (Bild nach HFJ)

7 V3 Larry muss diesmal viel ändern, da rotate neue Paramter bekommen hat. Er muss also auch alle Stellen ändern, andenen rotate benutzt wird. 1 rotate ( shapenum, xpt, ypt ) { 2 if (/* Form ist keine Amoebe */) { 3 // Rotiere um Box - Mittelpunkt 4 } else { 5 // Rotiere um xpt und ypt 6 } 7 } Brad passt die rotate-methode der Amöben-Klasse an. Für den Rotationspunkt erweitert er die Klasse um zwei Attribute. Ansonsten muss er nur Stellen verändern, an denen Amöben erzeugt werden, anderen Code muss er nicht anfassen. 1 class Amoeba { 2 int xpoint 3 int ypoint 4 rotate () { 5 // Drehe Amoebe um xpoint und ypoint 6 } 7 playsound () { 8 // Unveraendert 9 } 10 }

8 Der Trick mit der Vererbung Verursacht Brads OOP Ansatz dopelten Code zwischen den Methoden? Nicht umbedingt Auslagern gemeinsamer Eigenschaften in übergeordnete Klasse Vererbung Bild aus Head First Java - Second Edition

9 Bild aus Head First Java - Second Edition Noch ein Trick: Spezialisierung durch Überschreiben Nun würden aber alle Formen gleich rotieren Die Amöbe würde das Verhalten der Elternklasse erben. Methoden können in Unterklassen geändert werden Überschreiben von Methoden

10 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen Einfacheres Ändern von Programmen Wiederverwendung von Programmteilen Markus Reschke Java Grundlagen 2 - OOP 10 Institut für Programmierung und Reaktive Systeme

11 Klassen in Java 1 ZugriffsBeschraenker class KlassenName { 2 // Attribute 3 // Methoden 4 } Eine Klasse mit public-zugriffsbeschränker pro.java-datei

12 Attribute in Java Attribute beschreiben die Daten, die jedes Objekt speichert Klasse gibt an, welche Attribute Objekte dieser Klasse haben Jedes Objekt verfügt über eine eigene Kopie dieser Attribute Änderungen an den Attributen eines Objektes wirken sich nur auf dieses Objekt aus Attribute sollen fast immer private sein. Werden fast wie lokale Variablen definiert. 1 ZugriffsBeschraenker class KlassenName { 2 T attributsname ; 3 T attributsname = Initialisierungswert. 4 // Methoden 5 }

13 Methoden Methoden sind die Aktionen, die mit einem Objekt ausgeführt werden können Statische Methoden kennen wir schon Unterschied zu statischen Methoden: Sie arbeiten auf einzelne Objekte 1 ZugriffsBeschraenker class KlassenName { 2 // Attribute 3 Zugriffsbeschraenker Rueckgabetyp name ( T1 Paramter1,...) { 4 // Anweisungen 5 } 6 }

14 Zugriffsbeschränker Zugriffsbeschränker erlauben es, Elemente von Klassen vor dem Zugriff von außen versteckt. Dies erschwert unsachgemäße Verwendung von Objekten und erleichtert Kapselung. Beschränker Klasse Paket Unterklassen Rest public Y Y Y Y protected Y Y Y N keine Angabe Y Y N N private Y N N N Normalerweise reichen public und private. Markus Reschke Java Grundlagen 2 - OOP 14 Institut für Programmierung und Reaktive Systeme

15 Beispiel: Counter 1 public class Counter { 2 private int count ; 3 4 public void increase () { 5 count ++; 6 } 7 8 public int getcount () { 9 return count ; 10 } public void reset () { 13 count = 0; 14 } 15 }

16 Erzeugen von Objekten Wir können nun selber Klassen erstellen, wie werden diese nun verwendet? new erzeugt neue Objekte auf dem Heap. Syntax: new Klassenname(Konstruktorparameter) new gibt eine Referenz auf das neue Objekt zurück Stack Heap obj, Counter, Counter { count, int, 1 description, String, } String {... } 1 Counter c = new Counter ();

17 Der. Operator Wir können jetzt neue Objekte erzeugen. Wie benutzt man nun ein Objekt? Der.-Operator kann auf eine Referenz angewendet werden, um auf die Attribute und Methoden des referenzierten Objektes zuzugreifen. Voraussetzung ist, dass der Zugriff erlaubt ist (Beschränker) Syntax: referenz.element 1 Counter c = new Counter (); 2 c. increase (); 3 c. increase (); 4 c. reset (); Markus Reschke Java Grundlagen 2 - OOP 17 Institut für Programmierung und Reaktive Systeme

18 Konstruktoren Oft müssen beim Erzeugen von Objekten Attribute initialisiert werden Vom Benutzer der Klasse zu verlangen, dass er die Attribute selber nach dem Erzeugen setzt, kann zu Fehlern führen Konstruktoren sind Methoden, die beim Erzeugen des Objektes aufgerufen werden. Kein Rückgabetyp, Gleicher Name wie Klasse Falls keiner selber definiert: Default Konstruktor ohne Parameter Klassenname() wird automatisch erzeugt Konstruktoren werden nicht vererbt

19 Beispiel: Counter 1 public class Counter { 2 private int count ; 3 4 public Counter () { 5 this (1) ; 6 } 7 8 public Counter ( int start ) { 9 count = start ; 10 } public void increase () { 13 count ++; 14 } public int getcount () { 17 return count ; 18 } public void reset () { 21 count = 0; 22 } 23 }

20 Verdecken von Attributen und this Lokale Variablen und Methodenparameter können Attribute verdecken Zugriff auf lokale Variable anstatt aufs Attribut this ist eine Referenz auf das aktuelle Objekt. Kann benutzt werden, um trotz des Verdeckens auf das Attribut zuzugreifen. Markus Reschke Java Grundlagen 2 - OOP 20 Institut für Programmierung und Reaktive Systeme

21 Was Passiert? 1 public class Counter { 2 private int count = 100; 3 4 public void nichtverdeckt () { 5 System. out. println ( count ); 6 } 7 8 public void verdeckt () { 9 int count = 0; 10 System. out. println ( count ); 11 } public void verdecktparam ( int count ) { 14 System. out. println ( count ); 15 } public void verdecktthis () { 18 int count = 0; 19 System. out. println ( this. count ); 20 } 21 }

22 static static markiert Elemente von Klassen als statisch Wird normalerweise hinter dem Zugriffsbeschränker angegeben Für statische Attribute existiert nur eine einzige Kopie, die von allen Objektinstanzen dieser Klasse geteilt wird. Statische Methoden können ohne Objektinstanz genutzt werden, dürfen aber auch nur auf statische Elemente der Klasse zugreifen Nicht-statische Attribute existieren ja nur für Objektinstanzen, statische Methodenaufrufe operieren auf keinem Objekt Zugriff mit Klassenname.Element Markus Reschke Java Grundlagen 2 - OOP 22 Institut für Programmierung und Reaktive Systeme

23 Was Passiert? 1 public class Statisch { 2 public int a = 0; 3 public static int b = 1; 4 5 public static void main ( String [] args ) { 6 Statisch n1 = new Statisch (); 7 n1. a = 1; 8 Statisch n2 = new Statisch (); 9 n2. a = 2; 10 System. out. println (n1.a); 11 System. out. println (n2.a); 12 n1. b = 5; 13 System. out. println (n1.b); 14 System. out. println (n2.b); 15 System. out. println ( Statisch.b); 16 } 17 }

24 Überladen von Methoden Mehrere Methoden in einer Klasse können den selben Namen haben Müssen sich in der Parameterliste unterscheiden (durch andere Typen, andere Anzahl von Parametern oder beidem) Rückgabetyp wird nicht zur Unterscheidung herangezogen Auswahl der passenden Methode geschieht zur Kompilierzeit Markus Reschke Java Grundlagen 2 - OOP 24 Institut für Programmierung und Reaktive Systeme

25 Was Passiert? 1 public class Overload { 2 3 public void foo ( Object a) { 4 System. out. println (" Das war ein Object "); 5 } 6 7 public void foo ( String a) { 8 System. out. println (" Das war ein String "); 9 } public static void main ( String [] args ) { 12 Overload o = new Overload (); 13 Object obj = new String (" Foobar "); 14 o. foo ( obj ); 15 String str = new String (" Foobar "); 16 o. foo ( str ); 17 } }

26 final final vor Attributen und lokalen Variablen verhindert das Ändern derer Werte Für Referenttypen heißt dies: Es kann nicht geändert werden, worauf die Referenz zeigt. Das referenzierte Objekt ansich ist jedoch noch veränderbar. final vor Klassen: Von der Klasse kann nicht geerbt werden final vor Methoden: Kein Überschreiben möglich 1 import java. util.*; 2 public class Fin { 3 public static final List < String > l = new ArrayList < String >() ; 4 public static final int ANSWER = 42; 5 6 public static void main ( String [] args ) { 7 System. out. println (l); 8 // Geht nicht, da l final ist 9 // l = new ArrayList < String >() ; 10 // Das referenzierte Objekt selbst kann geaendert werden 11 l. add (" Test "); 12 System. out. println (l); 13 } 14 }

27 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält alle Attribute und Methoden der Elternklasse Syntax: class Kindsklasse extends Elternklasse... Objekte der Kindsklasse sind auch Objekte der Elternklasse Kindsklasse kann Methoden ändern (überschreiben), Zugriff auf Version der Elternklasse mit super Jede Klasse hat genau eine direkte Elternklasse, ohne Angabe Object

28 Ein schneller Counter 1 public class Counter { 2 private int count ; 3 4 public Counter ( int start ) { 5 this. count = start ; 6 } 7 8 protected setcount ( int count ) { 9 this. count = count ; 10 } public void increase () { 13 count ++; 14 } public int getcount () { 17 return count ; 18 } public void reset () { 21 count = 0; 22 } 23 }

29 Ein schneller Counter Wichtig: Kindsklasse darf nicht auf private Elemente der Elternklasse zugreifen! Wichtig: Konstruktoren werden nicht vererbt! setcount ist protected, damit die Unterklasse, den Counter freier setzen kann Alternativ: Mehrfache Benutzung von increase der Elternklasse 1 public class FastCounter extends Counter { 2 3 public FastCounter ( int start ) { 4 super ( start ); 5 } 6 7 public void increase () { 8 setcount ( getcount () + 2); 9 } 10 } 1 public void increase () { 2 super. increase (); 3 super. increase (); 4 }

30 Polymorphie Jedes Objekt einer Kindsklasse ist auch ein Objekt seiner Elternklassen. 1 Counter c = new FastCounter (0) ; Java löst Methodenaufrufe auf Objekte zur Laufzeit auf 1 c. increase (); // Ruft increase von FastCounter auf, obwohl c eine Counter - Referenz ist 2 System. out. println (c. getcount ()); // <- 2 Es wird die Methode des Typs des referenzierten Objektes aufgerufen, nicht die vom Typ der Referenz! Das Objekt selbst weiß, wie es was tun muss

31 Was passiert? 1 public class A { 2 public void say () { 3 System. out. println (" Klasse A"); 4 } 5 } 6 7 public class B extends A { 8 public void say () { 9 System. out. println (" Klasse B"); 10 } 11 } A a = new A(); 14 a. say (); 15 B b = new B(); 16 b. say (); 17 A b2 = new B(); 18 b2.say ();

32 == und Referenzen == vergleicht für Referenzdatentypen nur, ob beide Referenzen auf das selbe Objekt zeigen. 1 Counter a = new Counter (0) ; 2 Counter b = new Counter (0) ; 3 System. out. println (a == b); 4 Counter c = a; 5 System. out. println (a == c);

33 equals Alle Klassen erben von Object Object hat Methode public boolean equals(object o) Ohne Überschreiben wie == Kann in Unterklasse überschrieben werden, um wertemäßig zu vergleichen Da eine Referenz auf ein Object übergeben wird, muss man beim überschreiben auf zwei Sachen achten: null und den richtigen Typ o intanceof Klasse gibt true zurück, wenn o nicht null ist und ein Objekt vom Typ der angegebenen Klasse ist

34 Counter equals() 1 public class Counter { 2 public boolean equals ( Object o) { 3 if (!( o instanceof Counter )) { 4 return false ; // o null oder falscher Typ 5 } 6 Counter c = ( Counter ) o; 7 return o. getcount () == getcount (); 8 } 9 } Counter a = new Counter (0) ; 12 Counter b = new Counter (0) ; 13 System. out. println (a. equals (b)); 14 Counter c = a; 15 System. out. println (a. equals (c));

35 Abstrakte Klassen Klassen, von denen keine Objektinstanzen erzeugt werden können Baupläne für andere Klassen Sind mit abstract markiert. Können Methoden ohne Implementierung enthalten Diese Methoden müssen auch mit abstract markiert werden. Markus Reschke Java Grundlagen 2 - OOP 35 Institut für Programmierung und Reaktive Systeme

36 Ein abstrakter Counter 1 public abstract class IntCounter { 2 private int count ; 3 4 public IntCounter ( int start ) { 5 this. count = start ; 6 } 7 8 protected setcount ( int count ) { 9 this. count = count ; 10 } public abstract void increase (); public int getcount () { 15 return count ; 16 } public void reset () { 19 count = 0; 20 } 21 }

37 Interfaces Interfaces geben an, über welche Methoden eine Klasse verfügt Es wird jedoch keine Implementierung mitgegeben. Eine Klasse kann beliebig viele Interfaces implementieren (im Vergeich zum Erben) Die Definition eines Interfaces wird mit interface eingeleitet. Klassen implementieren Interfaces mit implements. Interfaces sind Typen Gegen Interfacetyp programmieren Implementierungen einfach austauchbar 1 ZugriffsBeschraenker interface KlassenName { 2 // Statische Konstanten ( public, static, final sind implizit ) 3 int ANSWER = 42; 4 // Abstrakte Methoden ( abstract, public sind implizit ) 5 void foo (); 6 }

38 Demo Demo: UnaryCounter.java ICounter.java IntCounter.java Main.java Markus Reschke Java Grundlagen 2 - OOP 38 Institut für Programmierung und Reaktive Systeme

39 Überblick und Ausblick Warum OOP? Klassen Attribute Methoden static Vererbung Abstrakte Klassen und Interfaces Morgen: Weitere Sprachfeatures von Java Markus Reschke Java Grundlagen 2 - OOP 39 Institut für Programmierung und Reaktive Systeme

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

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 12 bis 14.10.2016 Technische Universität Braunschweig, IPS Überblick Warum OOP? OOP

Mehr

Vorkurs Informatik WiSe 17/18

Vorkurs Informatik WiSe 17/18 Institut für Programmierung Java Objektorientierte Programmierung Dr. Werner Struckmann / Stephan Mielke, Nicole Naczk, 11. bis 13.10.2017 Technische Universität Braunschweig, IPS Warum OOP? OOP mit Java

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

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Institut für Programmierung und Reaktive Systeme Vorkurs Informatik WiSe 15/16 Java 5 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 16.10.2015 Technische Universität Braunschweig, IPS Überblick

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

Vorkurs Informatik SoSe18

Vorkurs Informatik SoSe18 Vorkurs Informatik SoSe18 Java Methoden Dr. Werner Struckmann / Maximilian von Unwerth, 27.03.2018 Einleitung Rekursion Übung Objektorientierung OOP mit Java Vererbung Weitere Beispiele 27.03.2018 Dr.

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte

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

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, 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

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

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

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

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

Fragen zur OOP in Java

Fragen zur OOP in Java - 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...

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, innere Klassen und Polymorphie 2 Vererbung im Klassendiagram (Wiederholung) Vererbung repräsentiert eine ist ein Beziehung zwischen Klassen Ware

Mehr

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1

IT I: Heute. abstrakte Methoden und Klassen. Interfaces. Interfaces List, Set und Collection IT I - VO 7 1 IT I: Heute abstrakte Methoden und Klassen Interfaces Interfaces List, Set und Collection 22.11.2018 IT I - VO 7 1 Wissensüberprüfung Überschreiben von Methoden: Aufruf der Methode der Oberklasse ist oft

Mehr

Tafelübung 07 Algorithmen und Datenstrukturen

Tafelübung 07 Algorithmen und Datenstrukturen Tafelübung 07 Algorithmen und Datenstrukturen Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Vererbung Grundlagen Abstrakte

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

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

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

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

! 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

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

Klassen und Konstruktoren in Java

Klassen und Konstruktoren in Java Klassen und Konstruktoren in Java class Circle { int r; Circle(int r) { this.r = r; // 1 Circle(Circle c) { this.r = c.r; // 2 Circle() { r = 1; // 3...... Circle a = new Circle(2); // Konstruktor 1 Circle

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

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

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

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

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

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

Vererbung und Polymorphie

Vererbung und Polymorphie Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter

Mehr

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017

Mapra: C++ Teil 6. Felix Gruber, Sven Groß. IGPM, RWTH Aachen. 13. Juni 2017 Mapra: C++ Teil 6 Felix Gruber, Sven Groß IGPM, RWTH Aachen 13. Juni 2017 Felix Gruber, Sven Groß (IGPM, RWTH Aachen) Mapra: C++ Teil 6 13. Juni 2017 1 / 22 Was bisher geschah Klassen I Attribute und Methoden

Mehr

Tag 8 Repetitorium Informatik (Java)

Tag 8 Repetitorium Informatik (Java) Tag 8 Repetitorium Informatik (Java) Dozent: Michael Baer Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Informatik-Repetitorium

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

Das Interface-Konzept am Beispiel der Sprache Java

Das Interface-Konzept am Beispiel der Sprache Java Das Interface-Konzept am Beispiel der Sprache Java Klaus Kusche, November 2013 Inhalt Motivation: Wozu braucht man Interfaces? Interfaces in Java Was spricht gegen die große Lösung? Voraussetzungen Kenntnisse

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

Informatik II Übung 6

Informatik II Übung 6 Informatik II Übung 6 Gruppe 2 Carina Fuss cfuss@student.ethz.ch 11.4.2018 Carina Fuss 11.4.2018 1 Übung 6 Nachbesprechung Übung 5 Objektorientierung Vererbung, Polymorphie, abstrakte Klassen, Interfaces,

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

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML OOP "Object oriented programming is bad" - professional retard 90s... UML Entwicklungsziele verschiedenen existierenden objektorienten Modellierungsmethoden

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

Implementieren von Klassen

Implementieren von Klassen Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und

Mehr

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

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

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

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

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

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017

Java Methoden. Informatik 1 für Nebenfachstudierende Grundmodul. Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 1 für Nebenfachstudierende Grundmodul Java Methoden Kai-Steffen Hielscher Folienversion: 1. Februar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht Kapitel 3 - Java

Mehr

Die abstrakte Klasse Expression:

Die abstrakte Klasse Expression: Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const 501 Die abstrakte Klasse Expression: Expression abstract evaluate() Add Neg Const Leider (zum Glück?) lässt sich nicht die

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

Informatik II Übung 06. Benjamin Hepp 5 April 2017

Informatik II Übung 06. Benjamin Hepp 5 April 2017 Informatik II Übung 06 Benjamin Hepp benjamin.hepp@inf.ethz.ch 5 April 2017 Nachbesprechung U5 5 April 2017 Informatik II - Übung 01 2 Nachbesprechung U5 1. Einfach verkettete Listen Keine Probleme 2.

Mehr

Objektorientierte Programmierung III

Objektorientierte Programmierung III Objektorientierte Programmierung III OOP Kapselung: Gruppierung von Daten und Funktionen als Objekte. Definieren eine Schnittstelle zu diesen Objekten. Vererbung: Erlaubt Code zwischen verwandten Typen

Mehr

JAVA 05: Objektorientierte Konzepte

JAVA 05: Objektorientierte Konzepte Lernkartenkurs JAVA 05: Objektorientierte Konzepte panitz Zusammenfassung Dieser Kurs beschäftigt sich mit Grundkonzepten der objektorientierten Programmierung. Was sind Klassen und Objekte? Wie sehen

Mehr

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E.

Objekte und Klassen. INE2 M. Thaler, Office TG ZHAW, M. Thaler, K. Rege, G. Burkert, E. Objekte und Klassen INE2 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? typedef struct Konto { double saldo; int id; Konto; Modul "konto" konto.h konto.c Prozedurale Programmierung:

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Klassenattribute und -methoden Bieniusa Software Entwicklung 1 2/ 23 Beispiel: Klassenattribute I class Uebungsgruppe

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

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - n 1. Grundelemente der Programmierung n 2. Objekte, Klassen und Methoden n 3. Rekursion und dynamische Datenstrukturen n 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und

Mehr

Programmiermethodik 1. Klausur

Programmiermethodik 1. Klausur Programmiermethodik 1. Klausur 27. 6. 2013 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 21 2 20 3 19 4 19 5 21 6 20 Gesamt 120 1 Seite 2 von 18 Aufgabe 1) Objekt-Orientierung und Vererbung

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java objektorientierte Programmierung 2 2 Zusammenhang Klasse-Datei In jeder *.java Datei kann es genau eine public-klasse geben wobei Klassen- und Dateiname übereinstimmen. Es können

Mehr

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik

Methoden und Klassen. Silke Trißl Wissensmanagement in der Bioinformatik Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode wird public

Mehr

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank...

Silke Trißl Wissensmanagement in der Bioinformatik. Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: Farbe Hubraum Tank... Methoden und Klassen Silke Trißl Wissensmanagement in der Bioinformatik Objektorientierte Programmierung (OOP) Vorstellung wie in der realen Welt: hat Farbe Hubraum Tank kann man Gas geben Bremsen Hoch

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

Mehr

Universität Karlsruhe (TH)

Universität Karlsruhe (TH) Universität Karlsruhe (TH) Lehrstuhl für Programmierparadigmen Fortgeschr. Objektorientierung SS 2009 http://pp.info.uni-karlsruhe.de/ Dozent: Prof. Dr.-Ing. G. Snelting snelting@ipd.info.uni-karlsruhe.de

Mehr

Java Vererbung. Inhalt

Java Vererbung. Inhalt Java Vererbung Inhalt 1 Zielsetzung... 2 1.1 Bewertung... 2 2 Grundlagen der Vererbung... 2 2.1 Super und Subklassen... 2 3 Überladen von Methoden... 4 3.1 Unterschiedliche Parameter... 4 3.2 Gleiche Parameter

Mehr

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces

Polymorphie/Späte Bindung Abstrakte Klassen Interfaces. Polymorphie/Späte Bindung Abstrakte Klassen Interfaces Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 20 Polymorphie/Späte Bindung Abstrakte Klassen Interfaces 2 / 20 Definition: Polymorphie Der Begriff Polymorphie (manchmal

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden

Mehr

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1

IT I: Heute. Klasse Object. equals, hashcode, tostring. HashSet IT I - VO 6 1 IT I: Heute Klasse Object equals, hashcode, tostring HashSet 14.11.2017 IT I - VO 6 1 Wissensüberprüfung Wie ruft man statische Methode auf? Gegeben Klasse Fix mit statischer Methode static boolean foxi(string

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

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode

Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik. Jede Applikation braucht eine Klasse mit einer main-methode Methoden und Klassen Silke Trißl, Prof. Ulf Leser Wissensmanagement in der Bioinformatik Wiederholung Jede Applikation braucht eine Klasse mit einer main-methode Eintrittspunkt in das Programm Die main-methode

Mehr

Einführung in die Programmiersprache Java II

Einführung in die Programmiersprache Java II Einführung in die Programmiersprache Java II ??????????? UML Klassendiagramm zeigt Klassen und ihre Beziehungen untereinander Visualisierung und Modellierung der statischen Struktur eines Systems Klassen

Mehr

Arten von Klassen-Beziehungen

Arten von Klassen-Beziehungen Arten von Klassen-Beziehungen Untertypbeziehung: Ersetzbarkeit Vererbung von Code aus Oberklasse irrelevant Vererbungsbeziehung: Klasse entsteht durch Abänderung anderer Klassen Ersetzbarkeit irrelevant

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

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

Wiederholung. Klassenhierarchie:

Wiederholung. Klassenhierarchie: Wiederholung Klassenhierarchie: class Unter extends Ober {... Die Unterklasse Unter erweitert die Funktionalität ihrer Oberklasse Ober. Objekte der Klasse Unter können anstelle von Objekten der Klasse

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung WS 2006/2007 Klassen und Vererbung in Java Walter Binder Universität Lugano 2006-11-23 Objektorientierte Programmierung 1 Überblick Konstruktoren Verdecken versus Überschreiben

Mehr

AuD-Tafelübung T-B5b

AuD-Tafelübung T-B5b 6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit

Mehr

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus

Vorlesung Programmieren. Bisher: Klassen und Objekte. Was ist mit ähnlichen Klassen? Vererbung und Polymorphismus Vorlesung Programmieren Vererbung und Polymorphismus Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Bisher: Klassen und Objekte Haupteigenschaften:

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

Interfaces und Vererbung

Interfaces und Vererbung Interfaces und Vererbung Einführung in Java Folie 1 von 31 12. Mai 2011 Ivo Kronenberg Inhalt Interfaces Statische und dynamische Typen Visiblitätsmodifier Vererbung Überschreiben von Methoden Konstruktoren

Mehr

II.4.5 Generische Datentypen - 1 -

II.4.5 Generische Datentypen - 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.5 Generische Datentypen - 1 - Ähnliche

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

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

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie

Anwendungsentwicklung mit Java. Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Anwendungsentwicklung mit Java Grundlagen der OOP, Vererbung, Schnittstellen, Polymorphie Vererbung (1) 2 Problem: Objekte mit gleichen Attributen/Methoden, aber nicht völlig identisch, z.b., LKW, PKW,

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

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

Abstrakte Basisklassen

Abstrakte Basisklassen Abstrakte Basisklassen Softwareentwicklung II (IB) Prof. Dr. Oliver Braun Letzte Änderung: 24.06.2018 15:20 Abstrakte Basisklassen 1/18 Idee (1/2) Gegensätze: Interfaces ausschließlich Methodenköpfe, keine

Mehr

EINFÜHRUNG IN DIE PROGRAMMIERUNG

EINFÜHRUNG IN DIE PROGRAMMIERUNG EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 09:00-10:30 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Linux, OS X Freitag: http://hhu-fscs.de/linux-install-party/

Mehr

II.4.1 Unterklassen und Vererbung - 1 -

II.4.1 Unterklassen und Vererbung - 1 - 1. Grundelemente der Programmierung 2. Objekte, Klassen und Methoden 3. Rekursion und dynamische Datenstrukturen 4. Erweiterung von Klassen und fortgeschrittene Konzepte II.4.1 Unterklassen und Vererbung

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

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

Überschreiben von Methoden

Überschreiben von Methoden Vergleich der DoME Realisierungen: Methode ausgeben Version 1 (ohne Vererbung): Anzeigen aller Informationen CD: A Swingin Affair (64 Min)* Frank Sinatra Titelanzahl: 16 Mein Lieblingsalbum von Sinatra

Mehr