Institut fu r Informatik
|
|
- Mareke Mann
- vor 5 Jahren
- Abrufe
Transkript
1 Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2013/14 Aufgabenblatt 6 9. Dezember Vererbung, Generische Datentypen 6.1 (U ) Einfu hrungsbeispiel: Vererbung (a) Stellen Sie sich Klassen als Repra sentationen von Autos, Zu gen, Schiffen und Flugzeugen vor: Wie ko nnten diese Klassen aussehen? Welche Attribute haben sie? Welche Unterschiede und Gemeinsamkeiten erkennen Sie? (b) Wie lassen sich Redundanzen in den besprochenen Beispiel-Klassen vermeiden? Unter welchem U berbegriff lassen sie sich zusammenfassen? (c) Wie funktioniert die Umsetzung dieser U berlegungen mittels des Vererbungs-Konzepts von Java? Was ist eine Superklasse? (d) Wie kann ausgedru ckt werden, dass die Superklasse wie im besprochenen Beispiel lediglich eine allgemeine Abstraktion ist, von der keine konkreten Instanzen erzeugt werden ko nnen? (e) Ko nnen Sie eine weitere Hierarchie-Ebene hinzufu gen, indem Sie Klassen unter einem U berbegriff zusammenfassen? Wie repra sentieren Sie diesen U berbegriff? (f) Mu ssen der Typ einer Objektreferenz (also der Typ der entsprechend deklarierten Variable) und der Typ des jeweils referenzierten Objekts identisch sein? Bsp.: Vehicle v = new Car(); (g) Was bedeuten die Begriffe statischer bzw. dynamischer Typ? (h) Welche Funktion hat der instanceof-operator? Benutzen Sie das bereitgestellte NetBeansProjekt VehicleTest, um den Operator anhand der Klassenhierarchie wie im obigen Beispiel auszuprobieren. (i) Was sind explizite Typecasts? Probieren Sie auch diese im NetBeans-Projekt VehicleTest aus. (j) Welche der folgenden Zuweisungen und Casts sind mo glich? Vehicle v1 = new Ship (); Car c1 = new LandCraft (); LandCraft l1 = new LandCraft (); LandCraft l2 = new Car (); Car c2 = ( Car ) l2 ; Vehicle v2 = new Car (); 1
2 Plane p1 = ( Plane ) v2; Ship s1 = new Ship (); Vehicle v3 = ( Vehicle ) s1; (k) Gibt es in Java eine spezielle Klasse, von der alle Klassen automatisch erben, auch wenn dies nicht explizit angegeben ist? 6.2 (Ü) Fragen zu Interfaces (a) Was versteht man in Java unter einem Interface? Worin besteht der Unterschied zu abstrakten Klassen? (b) Überlegen Sie sich, wie ein solches Interface für einen Stack bzw. eine Queue zum Speichern von ganzen Zahlen aussehen würde. (c) Wie gibt man in Java an, dass eine Klasse ein solches Interface implementiert? (d) Wie müssen die im Interface deklarierten Methoden in einer Klasse implementiert werden? Welche Rolle spielt in diesem Zusammenhang das (e) Kann eine Klasse mehrere Interface implementieren? Kann eine Klasse analog dazu von mehreren Superklassen erben? (f) Kann ein Interface als Datentyp für Variablen und Parameter verwendet werden? 6.3 (Ü) Benutzung von API Interfaces Interfaces finden in APIs häufig Verwendung, so auch in der Java-Standardbibliothek. Beispielsweise wird dort das Interface Comparable spezifiert, um beliebige Objekte sinnvoll miteinander vergleichen zu können. Sie sollen im Folgenden das NetBeans-Projekt SortComparables erweitern, das zum Sortieren eines Arrays von Comparable-Referenzen die statische Methode Sort.quickSort bereitstellt. (a) Diskutieren Sie zunächst das gegebene Beispiel in der main-methode der Klasse SortComparables: Was wird hier sortiert? Nach welchem Schema werden Strings im Allgemeinen sortiert? (b) Mit Hilfe des Interfaces Comparable ist es u.a. möglich, Instanzen beliebiger Klasse, die dieses Interface entsprechend der Spezifikation implementieren, zu sortieren. Lesen Sie die originale Spezifikation des Interfaces Comparable unter durch. 1 Welche Fälle können beim Vergleich zweier Objekte miteinander eintreten? Was passiert, wenn die null-referenz übergeben wird? 1 Wir verweisen an dieser Stelle auf die Spezifikation der Version und nicht etwa auf aktuellere Versionen, da Sie zum jetzigen Zeitpunkt noch keine Generics kennen. 2
3 Was passiert, wenn ein Objekt, das weder direkt noch indirekt von Friend abstammt, übergeben wird? Diskutieren Sie den Unterschied zwischen Referenz- und struktureller Gleichheit. (c) Versuchen Sie nun, eine Array von Objekten der Klasse Friend anzulegen und diese mit Hilfe von Sort.quickSort zu sortieren. Wieso funktioniert der Aufruf von Sort.quickSort nicht, obwohl die Klasse Friend über eine compareto-methode verfügt? Wieso können Sie dieser Funktion Referenzen auf Instanzen von Friend übergeben, obwohl Sie eine Referenz auf ein Object erwartet? Ändern Sie die Klasse Friend nun so ab, dass das Interface Comparable implementiert wird und versuchen Sie es erneut. 6.4 (Ü) Allgemeine Fragen zu Vererbung (a) Wieviele Ober- und wieviele Unterklassen kann eine Klasse haben? (b) Was sind abstrakte Methoden? Müssen Klassen, die abstrakte Methoden definieren, selbst abstrakt sein? (c) Was bedeutet Sichtbarkeit von Variablen bzw. Methoden? Welche Sichtbarkeiten gibt es in Java? Tragen Sie die zugehörigen Schlüsselworte sowie die daraus resultierenden Zugriffsberechtigungen in die folgende Tabelle ein. Schlüsselwort Klasse Package Erbende Klassen Global (d) Was bedeutet Overriding? Worin unterscheidet sich Overriding vom Overloading? (e) Können statische Methoden überschrieben werden? (f) Was bedeuten die Bezeichnungen statischer Typ bzw. dynamischer Typ einer Variablen oder eines Ausdrucks? 6.5 (Ü) Überschreiben und Überladen Das Identifizieren des dynamischen Typs ist äußerst wichtig, um entscheiden zu können, welcher Methodenrumpf zur Laufzeit wirklich ausgeführt wird. Um ihn zu ermitteln, muss (a) die Signatur S des konkreten Aufrufs bestimmt werden, d.h. der Name m der Methode sowie der statische Typ ihrer aktuellen Parameter. Der Rückgabetyp spielt dabei keine Rolle; (b) der statische Typ T des Objekts o bestimmt werden, auf das sich der Aufruf bezieht, d.h. der Typ der zugehörigen Variablen, 3
4 der Typ des Ausdrucks, von dem dereferenziert wird oder implizit der Typ des konkreten Objekts, auf dem der Aufruf stattfindet bei Verwendung von this; (c) in allen Klassen der Typhierarchie zwischen Object und T nach der Deklaration einer Methode m gesucht werden, deren Signatur kompatibel zu S und die am meisten spezialisiert ist. Die Signatur S dieser Methode m ist die Signatur der zur Laufzeit ausgeführten Methode; (d) nun noch in den Klassen der Typhierarchie zwischen Object und o nach der jüngsten Ausprägung einer Methode mit der Signatur S gesucht werden. Diese Methode ist diejenige, die zur Laufzeit ausgeführt wird. Bestimmen Sie für das folgende Programm, welche Methoden ausgeführt werden und was ausgegeben wird: c l a s s A { p u b l i c void somemethod ( ) { System. out. p r i n t l n ( A. somemethod ( ) ) ; p u b l i c void somemethod (A a ) { System. out. p r i n t l n ( A. somemethod (A a ) ) ; p u b l i c void somemethod (B b ) { System. out. p r i n t l n ( A. somemethod (B b ) ) ; p u b l i c A anothermethod ( ) { r e t u r n t h i s ; p u b l i c s t a t i c void somestaticmethod ( ) { System. out. p r i n t l n ( A. somestaticmethod ( ) ) ; c l a s s B extends A { p u b l i c void somemethod ( ) { System. out. p r i n t l n ( B. somemethod ( ) ) ; p u b l i c void somemethod (A a ) { System. out. p r i n t l n ( B. somemethod (A a ) ) ; p u b l i c B anothermethod ( ) { r e t u r n t h i s ; p u b l i c s t a t i c void somestaticmethod ( ) { System. out. p r i n t l n ( B. somestaticmethod ( ) ) ; c l a s s C extends A { p u b l i c void f o o (B b ) { ( (A) b ). somemethod ( super. anothermethod ( ) ) ; p u b l i c c l a s s ExampleOne { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { A a = new A ( ) ; B b = new B ( ) ; a. somestaticmethod ( ) ; // 1 b. somestaticmethod ( ) ; // 2 ( (A) b ). somestaticmethod ( ) ; // 3 A. somestaticmethod ( ) ; // 4 B. somestaticmethod ( ) ; // 5 a. somemethod ( ) ; // 6 b. somemethod ( ) ; // 7 ( (A) b ). somemethod ( ) ; // 8 a. somemethod ( a ) ; // 9 a. somemethod ( b ) ; // 10 b. somemethod ( a ) ; // 11 b. somemethod ( b ) ; // 12 4
5 a. somemethod ( (A) b ) ; // 13 b. somemethod ( (A) b ) ; // 14 System. out. p r i n t l n ( a. anothermethod ( ) ) ; // 15 System. out. p r i n t l n ( b. anothermethod ( ) ) ; // 16 System. out. p r i n t l n ( ( ( A) b ). anothermethod ( ) ) ; // 17 System. out. p r i n t l n ( a. anothermethod ( ) i n s t a n c e o f A ) ; // 18 System. out. p r i n t l n ( a. anothermethod ( ) i n s t a n c e o f B ) ; // 19 System. out. p r i n t l n ( b. anothermethod ( ) i n s t a n c e o f A ) ; // 20 System. out. p r i n t l n ( b. anothermethod ( ) i n s t a n c e o f B ) ; // 21 (new C ( ) ). f o o ( b ) ; // (Ü) Adressbuch Nun soll ein komplexeres Adressbuch für verschiedene Arten von Einträgen als NetBeans-Projekt AddressBook erstellt werden. Dabei soll es folgende unterschiedliche Typen von Kontakten geben: Eine Firma (Company) hat einen Firmennamen und eine Homepage. Kollegen (Colleague) haben einen Vor- und Nachnamen, eine adresse sowie eine Raumnummer. Freunde (Friend) haben einen Vor- und Nachnamen, eine adresse sowie einen Geburtstag, der mit Hilfe der bereits vorhandenen Klasse Birthday repräsentiert wird. Sämtliche Kontakte leiten sich von der abstrakten Klasse AddressBookItem ab. Sehen Sie sich zunächst die Klassen Klassen AddressBookItem und Company an. (a) Was bedeutet implements Comparable? (b) Was bedeutet extends AddressBookItem? (c) Wieso ist AddressBookItem kein Interface? (d) Welche Methoden sind in der Klasse AddressBookItem sichtbar? (e) Welche Methoden sind in der Klasse Company sichtbar? Die Einträge des Adressbuches können in einem sortierten AddressBook gespeichert werden. (f) Fügen Sie einige Firmenkontakte in das Adressbuch ein: p u b l i c c l a s s TestAddressBook { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { AddressBook book = new AddressBook ( ) ; book. addaddressbookitem ( new Company ( SUN, www. sun. com ) ) ; book. addaddressbookitem (new Company ( C a n o n i c a l Ltd., www. ubuntu. com ) ) ; book. addaddressbookitem ( new Company ( IBM, www. ibm. com ) ) ; System. out. p r i n t l n ( book ) ; (g) Sehen Sie sich die tostring-methode der Klasse AddressBook an und erklären Sie, wie sie funktioniert. 5
6 (h) Wieso wird anscheinend die tostring-methode der Klasse Company ausgeführt, obwohl hier doch der Typ der Elemente AddressBookItem ist? Erarbeiten Sie zusammen mit Ihrem Tutor eine geeignete Klassenhierarchie für Freunde und Kollegen. Fügen Sie an geeigneter Stelle eine weitere abstrakte Klasse in diese Hierarchie ein. (i) Implementieren Sie die benötigten Klassen. (j) Fügen Sie nun auch ein paar Kollegen und Freunde in Ihr Adressbuch ein: p u b l i c c l a s s TestAddressBook { p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { AddressBook book = new AddressBook ( ) ; book. addaddressbookitem ( new Company ( SUN, www. sun. com ) ) ; book. addaddressbookitem (new Company ( C a n o n i c a l Ltd., www. ubuntu. com ) ) ; book. addaddressbookitem ( new Company ( IBM, www. ibm. com ) ) ; book. addaddressbookitem ( new C o l l e a g u e ( K a r l, K o l l e g e, k a r k o l l e g e. de, ) ) ; book. addaddressbookitem ( new F r i e n d ( Paul, P r i v a t, p a u p r i v a t. de, new B i r t h d a y ( 2 4, 1 2, ) ) ) ; System. out. p r i n t l n ( book ) ; (k) Sehen Sie sich abschliessend nochmals die Methode AddressBook.toString() an und erklären Sie, wieso wann welche Implementierung der tostring-methode in der Schleife aufgerufen wird. 6.7 (Ü) Allgemeine Fragen zu generischen Datentypen (a) Was sind generische Datentypen? (b) Im NetBeans-Projekt Generics finden Sie die Quellcodes der Klassen StringItem und GenericItem, die jeweils einen Eintrag einer verketteten Liste von Strings bzw. eines generischen Typs darstellen. Wo liegen Unterschiede und Gemeinsamkeiten? StringItem.java: public class StringItem { private String content ; private StringItem next ; public StringItem ( String content, StringItem next ) { this. content = content ; this. next = next ; public StringItem getnext () { return next ; public void setnext ( StringItem next ) { this. next = next ; public String getcontent () { return content ; 6
7 GenericItem.java public class GenericItem <T > { private T content ; private GenericItem <T > next ; public GenericItem ( T content, GenericItem <T > next ) { this. content = content ; this. next = next ; public GenericItem <T > getnext () { return next ; public void setnext ( GenericItem <T > next ) { this. next = next ; public T getcontent () { return content ; (c) Ausserdem gibt es eine Klasse StringSinglyLinkedList, die intern mit StringItem- Objekten arbeitet. Entwickeln Sie zusammen mit Ihrem Tutor die Klasse GenericSinglyLinkedList, die anstelle des festgelegten Typens String mit generischen Typen T arbeitet. public class StringSinglyLinkedList { private StringItem first ; public void add ( String element ) { StringItem item = new StringItem ( element, null ); if ( first == null ) { first = item ; return ; StringItem curr = first ; while ( curr. getnext ()!= null ) { curr = curr. getnext (); curr. setnext ( item ); (d) Erweitern Sie die Klasse GenericSinglyLinkedList um die Methode boolean contains(t entry) die prüft, ob der übergebene Eintrag bereits in der Liste vorhanden ist. Wie können Sie die Objekt-Vergleiche durchführen, ohne zu wissen, von welchem Typ sie sind? (e) Wie instanziieren Sie nun eine auf String spezialisierte GenericSinglyLinkedList? Auf was müssen Sie achten, wenn Sie beispielsweise eine Liste mit ganzzahligen Werten anlegen möchten? (f) Erweitern Sie die Klasse GenericSinglyLinkedList um eine statische, generische Methode createfrom(s firstelement), die eine neue generische Liste vom Typ S zurückgibt, die 7
8 das übergebene Element enthält. Was ist hieran das Besondere? (g) Java stellt bereits eine große Menge generischer Collections zur Verfügung, so zum Beispiel: LinkedList<E> Queue<E> Stack<E> PriorityQueue<E> ArrayList<E> Beschreibungen dazu finden Sie unter Wie legt man einen auf Double spezialisierten Stack an? 6.8 (Ü) Generische Anwendung von Comparable Weiter oben haben Sie bereits Sie das nicht-generische Interface Comparable implementiert, das ein Objekt mit Objekten grundsätzlich beliebigen Typs vergleichbar macht. Für den (eigentlich relevanten) Vergleich mit Objekten desselben Typs musste zunächst ein expliziter Cast auf dem richtigem Klassentyp durchgeführt werden. (a) Lesen Sie zunächst die Spezifikation des generischen Interfaces Comparable: (b) Wie sähe die generische Implementierung der compareto-methode der Klasse Friend aus der Adressbuch-Aufgabe aus? (c) Worin liegt der Vorteil dieser generischen Variante? 8
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,
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 9 Prof. R. Westermann, A. Lehmann, R.
MehrAlgorithmen 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
MehrProgrammieren 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
MehrInstitut 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
MehrDie 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
MehrAlgorithmen 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
Mehr12 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,
MehrProgrammieren 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
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2009 Praktikum: Grundlagen der Programmierung Aufgabenblatt 9 Prof. R. Westermann, R. Fraedrich,
MehrVorkurs 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
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
MehrInstitut fu r Informatik
Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter WS 2015/16 Aufgabenblatt 6 23.11.2014
MehrErste Java-Programme (Java Wiederholung & Vererbung)
Lehrstuhl Bioinformatik Konstantin Pelz Erste Java-Programme (Java Wiederholung & ) Tutorium Bioinformatik (WS 18/19) Konstantin: Konstantin.pelz@campus.lmu.de Homepage: https://bioinformatik-muenchen.com/studium/propaedeutikumprogrammierung-in-der-bioinformatik/
MehrTafelü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
MehrNeben 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
MehrPolymorphie/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
MehrProbeklausur: 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,
MehrTag 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
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 6 Prof. R. Westermann, A. Lehmann, R.
MehrKapitel 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
MehrIT 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
MehrPolymorphie. 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
Mehr4. 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
MehrPolymorphie. 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
MehrObjektorientierung III
Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 10 9.1.2017 Objektorientierung III Aufgabe 10.1. Wir sind doch alle gleich In der Vorlesung
MehrHeute. Nachbetrachtung Wissensüberprüfung. Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.
Heute Nachbetrachtung Wissensüberprüfung Sortieren Interface Comparable TreeSet Sortieren von Arrays: Arrays.sort() 3.12.2015 IT I - VO 9 1 Organisatorisches Zwischentest findet am 16.12. von 17:30 bis
MehrAufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen
Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen Aufgabenblatt 4 Aufgabe 1 1. Erläutern Sie in eigenen Worten die Begriffe Datenstruktur, Datentyp und abstrakter Datentyp. Nutzen Sie das Beispiel
MehrInformatik 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.
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrJava Einführung Vererbung und Polymorphie. Kapitel 13
Java Einführung Vererbung und Polymorphie Kapitel 13 Inhalt Klassifikation (UML) Implementierung von Vererbungshierarchien Überschreiben von Methoden Polymorphismus: Up-Casting und Dynamisches Binden Schlüsselwort
MehrEinstieg 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
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrEinstieg 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
MehrDas 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
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
MehrII.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
MehrAnwendungsentwicklung 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Übungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2013 PD Dr. Cyrill Stachniss Dr. Rainer Kümmerle Übungsblatt 13 Abgabe / Besprechung in Absprache
MehrJavakurs 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
MehrTECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK
ECHNISCHE UNIVERSIÄ MÜNCHEN FAKULÄ FÜR INFORMAIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2007/2008 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 9 F. Forster,. Gawlitza,
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
MehrWeitere Beispiele. Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts. 7. Schnittstellen. Schnittstelle: Syntax
Weitere Beispiele Beispiel CD-Spieler: Exemplare eines abstrakten Konzepts public interface Funktion { boolean istimdefbereich(double x); double wert(double x); String gibbeschreibung(); public interface
Mehr14 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
Mehr14 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.
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Referenzen. Referenzen
5 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Referenzen Beispiel an der einfachen Klasse Walze: public class Walze { int id; public Walze(int id) { this.id = id; Verwenden
MehrProgrammierung WS14/15 Lösung - Präsenzübung C. Aschermann, F. Frohn, J. Hensel, T. Ströder
Prof. aa Dr. J. Giesl C. Aschermann, F. Frohn, J. Hensel, T. Ströder Aufgabe 1 (Programmanalyse): (14 + 6 = 20 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
Mehr14 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
MehrJavakurs 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
MehrProgrammieren 1 09 Vererbung und Polymorphie
Programmieren 1 09 Vererbung und Polymorphie Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 I. VERERBUNG 2 2 Vererbung Von Interfaces übernehmen
MehrProgrammieren 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
MehrAlgorithmen und Datenstrukturen. Übersicht. Interfaces und Generics. InsertionSort für Punkte. InsertionSort für Punkte
Algorithmen und Datenstrukturen Wintersemester 2012/13 21. Vorlesung Übersicht Liste und InsertionSort für e für Objekte beliebiger Klassen für Objekte von Klassen, die ein(e) Nutzer(in) festlegen kann
MehrII.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
MehrVererbung, 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
MehrII.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
MehrVererbung. 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
MehrProgrammierung 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
Mehr3. Übungsbesprechung Programmkonstruktion
3. Übungsbesprechung Programmkonstruktion Karl Gmeiner karl@complang.tuwien.ac.at December 12, 2011 K Gmeiner (karl@complang.tuwien.ac.at) 3. Übungsbesprechung PK December 12, 2011 1 / 13 Rückblick und
MehrDie Klasse java.lang.object. Thorsten Treffer
Die Klasse java.lang.object Thorsten Treffer 6. Dezember 2003 1 java.lang.object Die Klassenhierarchie von Java kann als Baum aufgezeichnet werden, dessen Wurzel die Klasse Object ist. Mit anderen Worten:
MehrProgrammierkurs Java
Programmierkurs Java Java Generics und Java API (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer Datenstrukturen In vielen Sprachen
MehrProgrammierung WS12/13 Lösung - Präsenzübung M. Brockschmidt, F. Emmes, C. Otto, T. Ströder
Prof. aa Dr. J. Giesl M. Brockschmidt, F. Emmes, C. Otto, T. Ströder Aufgabe 1 (Programmanalyse): (9 + 1 = 10 Punkte) a) Geben Sie die Ausgabe des Programms für den Aufruf java M an. Tragen Sie hierzu
MehrÜbungsserie Nr. 6. Ausgabe: 1. April 2015 Abgabe: 15. April Hinweise
Informatik II (D-ITET) Frühjahrssemester 2015 Prof. Friedemann Mattern Christian Beckel (beckel@inf.ethz.ch) ETH Zürich Institut für Pervasive Computing Gruppe für Verteilte Systeme http://vs.inf.ethz.ch
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
MehrProgrammierkurs 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
MehrInformatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich
Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
MehrEinführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrEINFÜ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/
MehrInstitut 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
MehrEinführung in C# Teil 3. Matthias Nübling
Einführung in C# Teil 3 Matthias Nübling Vorausgesetzte Grundkenntnisse Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrJava-Grundkurs für Wirtschaftsinformatiker
Klaus-Georg Deck Herbert Neuendorf Java-Grundkurs für Wirtschaftsinformatiker Die Grundlagen verstehen - Objektorientierte Programmierung - Fortgeschrittene Konzepte kennenlernen - Betriebswirtschaftlich
MehrWiederholung. 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
MehrKapitel 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
MehrSchlussendlich 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 -
MehrProgrammieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
MehrLösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am
Aufgabe 1 Lösungsvorschläge zur Nachklausur zum Kurs 1618 Sommersemester 2001 am 16.3.2002 Folgende Implementierung löst die gestellte Aufgabe : public interface Figur { public void anzeigen (); public
MehrTU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D.
TU München, Fakultät für Informatik Lehrstuhl III: Datenbanksysteme Prof. Alfons Kemper, Ph.D. Übung zur Vorlesung Einführung in die Informatik 2 für Ingenieure (MSE) Alexander van Renen (renen@in.tum.de)
MehrEinfü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
MehrRepetitorium 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
MehrRechtsbelehrung. Java und OOP Das Buch Christian Silberbauer 144
Rechtsbelehrung Dieser Foliensatz ist urheberrechtlich geschützt. Änderungen an den Folien sind untersagt. Ausschließlich eine nicht-kommerzielle Nutzung ist kostenfrei. Andernfalls wird eine Gebühr fällig.
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
MehrJavakurs 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
Mehrpue13 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
MehrEinfache Liste: Ein Stapel (Stack) Ansatz. Schaubild. Vorlesung 1. Handout S. 2. Die einfachste Form einer Liste ist ein Stapel (stack).
Programmieren I Martin Schultheiß Hochschule Darmstadt Sommersemester 2011 1 / 64 2 / 64 Motivation Hauptteil dieser Vorlesung sind die so genannten. Zur Motivation (und als Vorbereitung der Datencontainer-Klassen
MehrII.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
MehrVorausgesetzte Grundkenntnisse. Inhalt. Klassenhierarchie und Vererbung. Vererbung. Klassenhierarchie und Vererbung. Einführung in C# Teil 3
Vorausgesetzte Grundkenntnisse Einführung in C# Teil 3 Matthias Nübling Programmierung Typen, Variablen, Anweisungen, Funktionen, etc. Objektorientierte Programmierung Klassen, Vererbung, Polymorphismus,
MehrÜbungsblatt 13. Abgabe / Besprechung in Absprache mit dem Tutor
Albert-Ludwigs-Universität Freiburg Institut für Informatik Einführung in die Informatik Sommersemester 2018 Prof. Dr. Wolfram Burgard Andreas Kuhner Daniel Büscher Übungsblatt 13 Abgabe / Besprechung
MehrProgrammiermethodik 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
MehrUniversitä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
MehrFaulheit professionell: Fertige Datenbehälter. Das Java-Collections-Framework Typsicherheit Generische Klassen
Faulheit professionell: Fertige Datenbehälter Das Java-Collections-Framework Typsicherheit Generische Klassen Das Java Collections Framework Grundlegende Interfaces Das Interface List Das Interface List
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG OBJEKTORIENTIERTES PROGRAMMIEREN Tobias Witt 25.03.2014 10:30-12:00 Täglich Übungen zur Vertiefung Laptop hier nicht erforderlich Aber in den Übungen! Linux, OS X http://hhu-fscs.de/linux-install-party/
MehrProgrammierung für Mathematik HS11
software evolution & architecture lab Programmierung für Mathematik HS11 Übung 8 1 Aufgabe: Codeverständnis (Repetition) 1.1 Lernziele 1. Code verstehen können. 2. Fehler im Code finden und korrigieren
MehrII.4.4 Exceptions - 1 -
n 1. Unterklassen und Vererbung n 2. Abstrakte Klassen und Interfaces n 3. Modularität und Pakete n 4. Ausnahmen (Exceptions) n 5. Generische Datentypen n 6. Collections II.4.4 Exceptions - 1 - Ausnahmen
Mehr