Liste Programmieren Java Überblick

Größe: px
Ab Seite anzeigen:

Download "Liste Programmieren Java Überblick"

Transkript

1 Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 4 Schnittstellen 5 Innere Klassen 6 Exceptions 7 Funktionsbibliothek 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung mit SWING Prof. Dr. Björn Dreher Liste Programmieren - Java 88 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java 89

2 Beispiel: Online Shop für Bücher und CDs Buch Artikelnummer Verfasser Titel Verlag Erscheinungsjahr Preis CD Artikelnummer Interpret Liste von Musikstücken Preis Warenkorb sollte beide Arten von Artikel aufnehmen können Gemeinsame Attribute und Methoden Prof. Dr. Björn Dreher Liste Programmieren - Java 90 Klassendefinitionen Artikel, Buch, CD public class Article { private int code; // Artikelnummer private String label; // Kurzbeschreibung private int price; Eine Zeile Kurzinfo über Artikel: public void showinfo() {... public String getarticleline() {... code, label, price public Article(int code, String label, int price) {... public class Book extends Article { private String author, title, publisher; private int year; public void showinfo() {... public class CD extends Article { private String artist; private String[] song; public void showinfo() {... Informationen zu dem Artikel aufbereitet zur Darstellung in einem separaten Fenster: Verschieden für Bücher und CDs Prof. Dr. Björn Dreher Liste Programmieren - Java 91

3 Klassendefinitionen in UML-Notation Article - code: int - label: String - price: int + showinfo(): void + getarticleline(): String Book - author: String - title: String - publisher: String - year: int + showinfo(): void CD - artist: String - song: String [ ] + showinfo(): void Prof. Dr. Björn Dreher Liste Programmieren - Java 92 Alle Klassen erben von der Urvorfahrenklasse Object Vererbungsbeziehungen Jede Klasse hat genau eine Vorfahrenklasse (außer Object) In Java gibt es keine Mehrfachvererbung Jede Klasse kann 0 oder mehrere Nachfahrenklassen haben Syntax class UnterKlasse extends OberKlasse {... Bedeutung bei richtiger Anwendung von Vererbungsbeziehungen Ein Objekt der Unterklasse ist sinngemäß auch immer ein Mitglied der Oberklasse (eine is-a Beziehung) Ein Buch ist ein Artikel Sehr wichtig! Eine CD ist ein Artikel Prof. Dr. Björn Dreher Liste Programmieren - Java 93

4 Ein etwas einfacheres Beispiel: Kleidungsstücke Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String Socke Hose + kennung(): String + kennung(): String class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; class Socke extends Kleidung { return "Ich bin eine Socke " + "der Farbe " + farbe; class Hose extends Kleidung { return "Ich bin eine Hose " + "der Farbe " + farbe; Prof. Dr. Björn Dreher Liste Programmieren - Java 94 Hauptprogramm dazu public class SchrankVoll { public static void main(string args[]) { Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); System.out.println( s.kennung() ); System.out.println( h.kennung() ); Von Kleidung geerbte Methode Eigene Methode Prof. Dr. Björn Dreher Liste Programmieren - Java 95

5 Sichtbarkeit Nachfahrenklassen haben zu privaten Eigenschaften der Vorfahrenklasse keinen Zugriff Spezielle Sichtbarkeit: protected Sichtbar für Nachfahrenklassen und alle Klassen desselben Packages Will man eine Klasse auf mögliche Nachfahrenklassen vorbereiten, sollte man private in den meisten Fällen durch protected ersetzen Prof. Dr. Björn Dreher Liste Programmieren - Java 96 Polymorphismus Methoden bei Java sind normalerweise virtuelle Methoden Solche Methoden sind in der Basisklasse definiert und werden in den abgeleiteten Klassen redefiniert (überschrieben) Damit zeigen die abgeleiteten Klassen ein anderes Verhalten Mit einer Klassenhierarchie wird eine Menge von Datentypen (Klassen) derart definiert, dass eine Referenz auf die Basisklasse auch auf Objekte aller abgeleiteten Klassen zeigen kann. Ruft man mit einer solchen Referenz eine virtuelle Methode auf, so wird zur Laufzeit entschieden, welches die richtige redefinierte Methode ist Jedes Objekt weiß, welche Methodenimplementierung für es die richtige ist Prof. Dr. Björn Dreher Liste Programmieren - Java 97

6 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java 98 Zuweisungskompatibilität innerhalb einer Vererbungshierarchie Referenz auf Vorfahrenklasse kann Referenz auf Nachfahrenklasse aufnehmen Kleidung kann Socke oder Hose zugewiesen werden Beide sind Kleidung Wichtiges Konzept der Objektorientierung Überall, wo Oberklasse gefordert ist, kann auch ein Objekt der Unterklasse verwendet werden Unterklasse hat alles, was Oberklasse erwartet, ist nur spezieller Socke + kennung(): String Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String Hose + kennung(): String Oberklasse kann speziellere Eigenschaften der Unterklasse (ohne besondere Vorkehrungen) nicht nutzen Prof. Dr. Björn Dreher Liste Programmieren - Java 99

7 Häufige Anwendung in der Java-Klassenbibliothek Behälterklassen (Liste, Stack) Erwarten Objekte der Klasse Object Können daher alle Java Objekte aufnehmen Unser Beispiel: Überall, wo Kleidung erwartet wird, können auch Socken der Hosen benutzt werden Prof. Dr. Björn Dreher Liste Programmieren - Java 100 Beispiel public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); kl[0] = s; kl[1] = h; System.out.println( kl[0].getfarbe() ); System.out.println( kl[1].getfarbe() ); for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); // Geht nicht! Prof. Dr. Björn Dreher Liste Programmieren - Java 101

8 Unser Beispiel Kleidungsstücke modifiziert Kleidung # farbe: String + setfarbe(string f): void + getfarbe(): String + kennung(): String Socke Hose + kennung(): String + kennung(): String class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich bin eine Kleidung"; class Socke extends Kleidung { return "Ich bin eine Socke " + "der Farbe " + farbe; class Hose extends Kleidung { return "Ich bin eine Hose " + "der Farbe " + farbe; Prof. Dr. Björn Dreher Liste Programmieren - Java 102 Beispiel public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); // Geht jetzt! Socke s1 = kl[0]; // Geht nicht! Socke s1 = (Socke) kl[0]; // So geht's Typumwandlung Richtigkeit wird zur Laufzeit geprüft Prof. Dr. Björn Dreher Liste Programmieren - Java 103

9 Finale Klassen Soll eine Klasse nicht vererbbar sein, d.h. also keine Unterklassen bilden können, so muss sie mit dem Modifizierer final versehen werden Über Vererbung in Form von Unterklassen können Eigenschaften der Klasse nicht mehr verändert werden Einsatz z.b. unter Sicherheitsaspekten Klasse String ist final Strings bleiben immer unveränderlich Prof. Dr. Björn Dreher Liste Programmieren - Java 104 Klassenzugehörigkeit überprüfen Operator instanceof boolean b; String str = "Mein String"; b = ( str instanceof String ); b = ( str instanceof Object ); b = ( str instanceof Date );... // true // true // false Ergibt auch wahr bei Vergleich mit einer Vorfahrenklasse! Falls true Linker Operand kann sicher einem Objekt der Klasse des rechten Operanden zugewiesen oder in diese Klasse typgewandelt werden: if (myobject instanceof Point) Point p = (Point) myobject; Prof. Dr. Björn Dreher Liste Programmieren - Java 105

10 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java Methoden überschreiben Vererbungsregeln Unterklasse erbt alle sichtbaren Eigenschaften public und protected package, wenn sie im selben Package liegt Methoden können hinzugefügt werden Anderer Name: Neue Methode kommt hinzu Derselbe Name, aber andere Signatur: Methode wird überladen (Overloading) Neue Methode mit veränderter Signatur kommt hinzu Derselbe Name, dieselbe Signatur und derselbe Rückgabetyp: Methode wird überschrieben (Overriding) Unterklasse implementiert die Methode der Oberklasse neu Neue Methode verändert das bisherige Verhalten Spezialisierung Basis für Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java 107

11 3.3 Methoden überschreiben Aufrufen einer Methode der Oberklasse Überschreiben einer Methode: Völlig neue Implementierung Könnte man nicht die überschriebene Methode aufrufen, diese bestimmte Basisarbeit verrichten lassen... und dann zusätzliche Anweisungen anhängen (Code- Wiederverwendung)? Abhilfe: Schlüsselwort super class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; class Socke extends Kleidung { return super.kennung() + " ich bin eine Socke!"; class Hose extends Kleidung { return super.kennung() + " ich bin eine Hose!"; Prof. Dr. Björn Dreher Liste Programmieren - Java Methoden überschreiben Regeln zu super Entspricht der this-referenz super bezeichnet dasselbe Objekt wie this, nur als Typ der Oberklasse Damit stehen verdeckte Methoden (und verdeckte Attribute) der Oberklasse zur Verfügung class Oben { int i = 1; void m() { System.out.println("Ich bin Oben"); class Unten extends Oben { int i = 2; void m() { super.m(); System.out.println(super.i); System.out.println("Ich bin Unten"); System.out.println(i); super ist nicht schachtelbar, um sich entlang der Vererbungshierarchie nach oben zu hangeln! Prof. Dr. Björn Dreher Liste Programmieren - Java 109

12 3.3 Methoden überschreiben Nicht überschreibbare Methoden Will man unterbinden, dass ein Entwickler eine Methode in einer Unterklasse überschreibt und somit neu definiert Schlüsselwort final vor die Methodendefinition class Ober { final void sicher() { class Unter extends Ober { void sicher() { Compilerfehler! Methode sicher() wird nicht mehr dynamisch gebunden! Es besteht dazu keine Notwendigkeit mehr Prof. Dr. Björn Dreher Liste Programmieren - Java 110 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java 111

13 Wurzel aller Java-Klassen Alle Methoden werden geerbt oder können überschrieben werden Object + getclass(): Class + hashcode(): int + equals(obj: Object): boolean + tostring(): String + notify(): void + notifyall(): void + wait(timeout: long): void + wait(timeout: long, nanos: int): void + wait(): void # clone(): Object # finalize(): void Prof. Dr. Björn Dreher Liste Programmieren - Java 112 public final Class getclass() Gibt das zugehörige Klassenobjekt zurück Klassenobjekte repräsentieren jeweils eine Klasse Meta-Informationen über Objekte, u.a. Verfügbare Attribute und Methoden Name der Klasse Hose meinehose = new Hose(); System.out.println( meinehose.getclass().getname() ); public int hashcode() Möglichst eindeutige Integerzahl für ein Objekt Inhaltlich gleiche Objekte (gemäß equals()) müssen denselben Hash Code liefern Anwendung: Speichern von Objekten in Hash-Tabellen Prof. Dr. Björn Dreher Liste Programmieren - Java 113

14 public String tostring() Identifikation eines jeden Objektes durch eine Zeichenkette Z.B. Werte der Attribute in lesbarer Form Neue Klassen sollten diese Methode überschreiben Wird automatisch aufgerufen, wenn print() oder println() eine Objektreferenz übergeben bekommen Sichtbarkeit sollte public bleiben Standard-Implementation in Object public String tostring() { return getclass().getname() + "@" + Integer.toHexString(hashCode()); Prof. Dr. Björn Dreher Liste Programmieren - Java 114 public boolean equals(object obj) Vergleichsoperator zwischen zwei Objektreferenzen if (ob1 == obj2)... liefert true, wenn beide Referenzen auf dasselbe Objekt zeigen Prüft nicht inhaltliche Gleichheit: if (meinname == "Ulli")... kann false liefern, auch wenn meinname denselben Stringwert enthält Stattdessen: String meinname = "Ulli"; if (meinname.equals("ulli"))... // liefert true Vorsicht: Nicht jede Klasse implementiert ihre eigene equals()-methode String tut das Prof. Dr. Björn Dreher Liste Programmieren - Java 115

15 equals(), null und hashcode() Vergleich mit null liefert immer false if (meinname.equals(null))... // liefert false Bei Gleichheit via equals() muss auch hashcode() identische Werte liefern Bei Point Objekten wird der Hash Code auf der Basis der beiden Koordinaten berechnet Folge: Wird equals() überschrieben, muss meistens auch hashcode() überschrieben werden Prof. Dr. Björn Dreher Liste Programmieren - Java 116 Eigene Methode clone() Objekt kann sich selbst klonen Exakte Kopie von sich selbst Von Object geerbtes clone(): Flache Kopie Eigenes clone(): Tiefe Kopie ist möglich Javas Ersatz für Kopierkonstruktor Aufräumen mit finalize() Aufgerufen, wenn Garbage Collector Objekt entfernen möchte Freigeben erworbener Ressourcen Datei schließen Dynamische Objekte freigeben (nicht unbedingt nötig) Keine Garantie, dass überhaupt irgendwann aufgerufen wird! Wenn überschrieben, dann auch immer finalize() der Oberklasse aufrufen: super.finalize(); Prof. Dr. Björn Dreher Liste Programmieren - Java 117

16 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java Polymorphismus Überschreiben einer Methode (Overriding) Oberklasse kann einfache Implementierung vorgeben Unterklasse kann diese durch Überschreiben spezialisieren Laufzeitumgebung sucht in Klassenhierarchie von unten nach oben nach passender Methode Hätte Hose keine kennung(), würde die von Kleidung aufgerufen class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; class Socke extends Kleidung { return super.kennung() + " ich bin eine Socke!"; class Hose extends Kleidung { return super.kennung() + " ich bin eine Hose!"; Prof. Dr. Björn Dreher Liste Programmieren - Java 119

17 3.5 Polymorphismus Polymorphismus durch dynamische Bindung public class WasIstAllesKleidung { public static void main(string args[]) { Kleidung [] kl = new Kleidung[2]; Socke s = new Socke(); s.setfarbe("rot"); Hose h = new Hose(); h.setfarbe("grau"); Wird hier kennung() von Kleidung oder von Socke bzw. Hose aufgerufen? for (int i = 0; i < 2; i++) System.out.println( kl[i].kennung() ); Als Voreinstellung werden Methoden in Java dynamisch gebunden Zur Laufzeit wird festgestellt, zu welcher Klasse das Objekt gehört Dann wird die zugehörige Methode aufgerufen In C++: Virtuelle Methoden Prof. Dr. Björn Dreher Liste Programmieren - Java Polymorphismus Keine dynamische Bindung: Bei nicht überschreibbaren Methoden final private static class NoPolymorphismWithPrivate { public static void main( String args[] ) { Unter unsicht = new Unter(); System.out.println( unsicht.bar() ); // --- class Ober { private int furcht() { return 2; int bar() { return furcht(); Hier wird in bar() furcht() von Ober aufgerufen! furcht() wird statisch gebunden! class Unter extends Ober { int furcht() { return 1; Kein Compilerfehler: Unterklasse weiß nichts von privater Methode der Oberklasse Prof. Dr. Björn Dreher Liste Programmieren - Java 121

18 3.5 Polymorphismus Konstruktoren in der Vererbung Konstruktoren werden nicht vererbt Zu Beginn eines Konstruktors wird immer automatisch der Standard- Konstruktor der Oberklasse aufgerufen: super(); Initialisiert den geerbten Teil des Objektes Möglichkeit, einen parametrisierten Konstruktor der Oberklasse aufzurufen: public GraphObject(double x, double y, String farbe) { this.x = x; this.y = y; this.farbe = new String(farbe); public Kreis(double x, double y, String farbe, double radius){ super(x, y, farbe); this.radius = radius; Kreis ist Nachfahre von GraphObject Prof. Dr. Björn Dreher Liste Programmieren - Java 122 Liste Programmieren Java Überblick: 3. Vererbung 3.3 Methoden überschreiben 3.5 Polymorphismus Prof. Dr. Björn Dreher Liste Programmieren - Java 123

19 Klassen, von der keine Instanzen gebildet werden sollen Wurzelklasse einer Klassenhierarchie Kann/soll vielleicht noch nicht voll ausprogrammiert werden Hält gemeinsame Attribute vor Realisiert schon voll implementierbare Methoden Gibt für abstrakte Methoden die Signatur vor Implementierung liegt bei den Unterklassen Eine konkrete Unterklasse muss diese Methode implementieren Wenn nicht, ist auch sie abstrakt Gegenteil: Konkrete Klasse: Es können davon Instanzen gebildet werden Prof. Dr. Björn Dreher Liste Programmieren - Java 124 Abstrakte Klasse Basisklasse für Container, der alle Nachfahren enthalten können soll Wurzel einer is-a Beziehungshierarchie Gibt Signaturen für Unterklassen vor Bereits fertige Methoden können hier voll implementiert werden und werden so geerbt Andere Methoden werden in Unterklasse überschrieben, wenn sich dort das Verhalten ändert abstract class Kleidung { protected String farbe; public void setfarbe (String f) { farbe = f; public String getfarbe() { return farbe; return "Ich habe die Farbe " + farbe + " und "; Prof. Dr. Björn Dreher Liste Programmieren - Java 125

20 Abstrakte Methoden Methode, die in der (abstrakten) Klasse noch nicht implementiert werden kann Besitzt keinen Methodenrumpf Gibt jedoch bereits Signatur vor public abstract double flaeche(); Nachfahrenklassen müssen diese Methode implementieren, damit von ihnen Instanzen erzeugt werden können Eine Klasse mit mindestens einer abstrakten Methode muss selbst auch als abstrakt definiert sein Prof. Dr. Björn Dreher Liste Programmieren - Java 126 Beispiel Delphin ausgabe(): void Saeugetier alter: int istsaeuger(): boolean Tier setalter(a: int): void istsaeuger(): boolean ausgabe(): void Mensch ausgabe(): void abstract class Tier { int alter = -1; void altersetzen( int a ) { alter = a; abstract boolean istsaeuger(); abstract void ausgabe(); abstract class Saeugetier extends Tier { boolean istsaeuger() { return true; class Mensch extends Saeugetier { void ausgabe() { System.out.println( "Ich bin ein Mensch" ); class Delphin extends Saeugetier { void ausgabe() { System.out.println( "Ich bin ein Delphin" ); Prof. Dr. Björn Dreher Liste Programmieren - Java 127

21 Unser Beispiel Tier m = new Mensch(); Tier d = new Delphin(); Aufgrund des Substitutionsprinzips möglich Standard-Konstruktor wird aufgerufen Auch der der Superklasse Auch wenn sie abstrakt ist Kann jedoch nicht direkt aufgerufen werden Tier s = new Saeugetier(); // geht nicht! Auch Attribute werden initialisiert (alter = -1)! Aufruf von m.ausgabe(); d.ausgabe(); liefert Ich bin ein Mensch Ich bin ein Delphin Prof. Dr. Björn Dreher Liste Programmieren - Java 128 abstract und final? abstract: Keine Instanz final: Keine Vererbung Widerspruch Compiler lässt das nicht zu! Prof. Dr. Björn Dreher Liste Programmieren - Java 129

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

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

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung 1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben

Mehr

Java für Computerlinguisten

Java für Computerlinguisten Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009

Mehr

Kapitel 6. Vererbung

Kapitel 6. Vererbung Kapitel 6 Vererbung Vererbung 1 Ziele Das Vererbungsprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen

Mehr

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java 3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und

Mehr

3 Objektorientierte Konzepte in Java

3 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

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

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden

VIII: Vererbung. Unterklassen einer Klasse. Vererbung von Methoden und Instanzvariablen. Überschreiben von Methoden VIII: Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik I VIII: Vererbung 259 Beispiel:

Mehr

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung.

Vererbung. Vererbung von Methoden und Instanzvariablen. Vererbung als Realisierung einer is-a Beziehung. Vererbung Unterklassen einer Klasse Vererbung von Methoden und Instanzvariablen Überschreiben von Methoden Vererbung als Realisierung einer is-a Beziehung. Informatik II: Objektorientierte SW-Entwicklung,

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin

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

Einführung in die. objektorientierte Programmierung

Einführung in die. objektorientierte Programmierung Einführung in die objektorientierte Programmierung Teil 3 Vererbung Modul WI111: Objektorientierte Programmierung Fachrichtung Wirtschaftsinformatik Prof. Dr. Gert Faustmann Fachbereich Berufsakademie

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

Datenbankanwendungsprogrammierung Crashkurs Java

Datenbankanwendungsprogrammierung Crashkurs Java Datenbankanwendungsprogrammierung Crashkurs Java Denny Priebe Datenbankanwendungsprogrammierung p. Unterschiede zu C, C++ typedefs, Präprozessor Strukturen, Unions globale Funktionen Mehrfachvererbung

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

1 Polymorphie (Vielgestaltigkeit)

1 Polymorphie (Vielgestaltigkeit) 1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen

Mehr

5.6 Vererbung. Vererbung

5.6 Vererbung. Vererbung 5.6 Vererbung Klassen können zueinander in einer "ist ein"- Beziehung stehen Beispiel: Jeder PKW ist ein Kraftfahrzeug, jedes Kraftfahrzeug ist ein Transportmittel aber: auch jeder LKW ist ein Kraftfahrzeug

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

> Vererbung, Die Austauschbarkeit

> Vererbung, Die Austauschbarkeit Objektorientierte Programmierung (OOP) > Vererbung, Die Austauschbarkeit Mark Egloff 2006 1 Lernziel Heute Abend > Sie lernen wie Objekte gezielt kompatibel werden und somit ausgetauscht werden können

Mehr

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure

7. Objektorientierte Softwareentwicklung/3. Informatik II für Verkehrsingenieure 7. Objektorientierte Softwareentwicklung/3 Informatik II für Verkehrsingenieure Überblick FOLGENDE BEGRIFFE/PRINZIPIEN SOLLTEN BEKANNT SEIN Objekte Klasse Attribute Fähigkeiten ZIEL DER HEUTIGEN LEHRVERANSTALTUNG

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 8 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Vererbung Vererbung Statischer Typ Dynamischer Typ 2 Polymorphie Overloading: Methoden überladen Overriding:

Mehr

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern

C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches

Mehr

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung

Grundlagen der Programmierung Prof. H. Mössenböck. 11. Objektorientierung Grundlagen der Programmierung Prof. H. Mössenböck 11. Objektorientierung Klasse = Daten + Methoden Beispiel: Positionsklasse class Position { private int x; private int y; void goleft() { x = x - 1; void

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Programmieren - Vererbung & Polymorphie

Programmieren - Vererbung & Polymorphie Programmieren - Vererbung & Polymorphie Reiner Nitsch r.nitsch@fbi.h-da.de Vererbung - Was ist das? Vererbung ist ein wichtiges Konzept zur Unterstützung der Wiederverwendbarkeit, wenn auch nicht das Wichtigste.

Mehr

Java Einführung Methoden in Klassen

Java Einführung Methoden in Klassen Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding

Mehr

Abschnitt 9: Schnittstellen: Interfaces

Abschnitt 9: Schnittstellen: Interfaces Abschnitt 9: Schnittstellen: Interfaces 9. Schnittstellen: Interfaces 9.1 Die Idee der Schnittstellen 9.2 Schnittstellen in Java 9.3 Marker-Interfaces 9.4 Interfaces und Hilfsklassen 9.5 Zusammenfassung

Mehr

Vererbung & Schnittstellen in C#

Vererbung & Schnittstellen in C# Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung

Mehr

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0

Objects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0 Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben

Mehr

3. Konzepte der objektorientierten Programmierung

3. Konzepte der objektorientierten Programmierung 3. Konzepte der objektorientierten Programmierung 3.1 Basiskonzepte 3.2 Generalisierung / Spezialisierung 3.3 Aggregation 3.4 Assoziation 3.5 Nachrichten 3.6 Polymorphismus 3. Konzepte der Objektorientierung

Mehr

GetName(), GetName(), GetGeschlecht() und AelterWerden().

GetName(), GetName(), GetGeschlecht() und AelterWerden(). 11. Vererbung Vererbung ist eine der mächtigsten Funktionalitäten der objektorientierten Programmiersprachen. Man versteht unter Vererbung die Tatsache, dass eine Klasse alle Methoden und Variablen einer

Mehr

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000 A. Beschreibung der Projektarbeit. Welche Aufgabe haben Sie im Rahmen der Projektarbeit gelöst? 2. Mit welchen Tools bzw. Programmen (Anwendung,

Mehr

13. Tutorium zu Programmieren

13. Tutorium zu Programmieren 13. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2009 by IPD Snelting

Mehr

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. November 2003 Test zu Grundlagen der Programmierung Leitung: Michael Hahsler 1. November 00 Name Martrikelnummer Unterschrift Bitte kreuzen Sie das Studium an, für das Sie diese Prüfung ablegen: O Bakkalaureat Wirtschaftsinformatik

Mehr

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern

Objektorientierte Programmierung mit Python Polymorphismus und Vererbung. Eltern Objektorientierte Programmierung mit Python Polymorphismus und Vererbung Eltern Kind Kind Kind Kind Prinzipien der objektorientierten Programmierung Vererbung Strukturierung von Klassen. Oberbegriffe beschreiben

Mehr

Objektorientierte Programmierung. Kapitel 12: Interfaces

Objektorientierte Programmierung. Kapitel 12: Interfaces 12. Interfaces 1/14 Objektorientierte Programmierung Kapitel 12: Interfaces Stefan Brass Martin-Luther-Universität Halle-Wittenberg Wintersemester 2012/13 http://www.informatik.uni-halle.de/ brass/oop12/

Mehr

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Software Engineering Klassendiagramme Einführung

Software Engineering Klassendiagramme Einführung Software Engineering Klassendiagramme Einführung Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Aufgabe Erstellen Sie eine Klasse Person in Java. Jede Person verfügt

Mehr

Java Einführung Abstrakte Klassen und Interfaces

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

Mehr

Algorithmen und Datenstrukturen 07

Algorithmen und Datenstrukturen 07 5. Dezember 2011 1 Besprechung Blatt 6 Fragen 2 Vererbung Allgemein abstract Interfaces 3 Unified Modeling Language (UML) Ablaufdiagramme Klassendiagramme Anwendungsfalldiagramme 4 Vorbereitung Blatt 7

Mehr

4 Vererbung, Polymorphie

4 Vererbung, Polymorphie 4 Vererbung, Polymorphie Jörn Loviscach Versionsstand: 21. März 2014, 22:57 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html This work

Mehr

Grundlagen der Informatik Objektorientierte Software-Entwicklung

Grundlagen der Informatik Objektorientierte Software-Entwicklung Grundlagen der Informatik Objektorientierte Software-Entwicklung Prof. Dr. Bernhard Schiefer (basierend auf Unterlagen von Prof. Dr. Duque-Antón) bernhard.schiefer@fh-kl.de http://www.fh-kl.de/~schiefer

Mehr

Klassen in Java. Klassen

Klassen in Java. Klassen Klassen in Java Klassen Klassen beschreiben Objekte, die abstakte oder konkrete Sachverhalte modellieren. Objekte sind durch einen Status gekennzeichnet (State). Der Status eines Objektes ergibt sich aus

Mehr

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.

Eine Klasse beschreibt Objekte mit gleichen Attributen und Methoden. Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,

Mehr

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java Willkommen zur Vorlesung Objektorientierte Programmierung Vertiefung - Java Zum Dozenten Mein Name: Andreas Berndt Diplom-Informatiker (TU Darmstadt) Derzeit Software-Entwickler für Web- Applikationen

Mehr

Teil 1: Grundeigenschaften von Rechnern und Software

Teil 1: Grundeigenschaften von Rechnern und Software Blatt Nummer: 1 Teil 1: Grundeigenschaften von Rechnern und Software Aufgabe 1.1 [2P] Welcher fundamentale Unterschied besteht zwischen dem Zweck eines Computer von dem Zweck anderer Maschinen (etwa einer

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Kurs OPR. Objektorientierte Programmierung

Kurs OPR. Objektorientierte Programmierung Kurs OPR Objektorientierte Programmierung Lektion: 005-Vererbung, Polymorphismus Zürcher Hochschule für Angewandte Wissenschaften Mitglied der Fachhochschule Zürich Version 1.4 Inhaltsverzeichnis 1 Vererbung

Mehr

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11

EINI I. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 10/11 EINI I Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 10/11 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe

Java: Eine Übersicht. Dennis Giffhorn. Lehrstuhl für Programmierparadigmen Universität Karlsruhe Java: Eine Übersicht Dennis Giffhorn Lehrstuhl für Programmierparadigmen Universität Karlsruhe Allgemeines Objektorientiert Syntaxfamilie von C/C++ Statisch getypt Entwickelt von Sun Microsystems class

Mehr

Institut fu r Informatik

Institut 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 Java, Objektorientierung 5.1 (U )

Mehr

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009

PIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2008/2009 PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2008/2009 FB Informatik

Mehr

5.4 Klassen und Objekte

5.4 Klassen und Objekte 5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen

Mehr

Variablen manipulieren per JDI

Variablen manipulieren per JDI Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Konstruktor, Statische Methoden Packages Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Initialisierung von Datenstrukturen

Mehr

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung

1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung K05 Vererbung & Polymorphie in C++ 1. Grundlegende Eigenscha5en 2. Redefini+on 3. Polymophie 4. Mehrfachvererbung 2 Vererbung in C++: Grundlagen Analog zu Java unterstützt C++ das Konzept der Vererbung:

Mehr

Typumwandlungen bei Referenztypen

Typumwandlungen bei Referenztypen Typumwandlungen bei Referenztypen Genau wie es bei einfachen Typen Typumwandlungen gibt, gibt es auch bei Referenztypen Umwandlungen von einem Referenztypen in einen anderen Referenztypen, die wie bei

Mehr

Technische Universita t Mu nchen Institut fu r Informatik

Technische Universita t Mu nchen Institut 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. Dr. B. Rost, L. Richter Hinweis: WS 15/16 U bungsblatt

Mehr

Java - Programmierung - Objektorientierte Programmierung 1

Java - Programmierung - Objektorientierte Programmierung 1 Java - Programmierung - Objektorientierte Programmierung 1 // Klassen und Objekte public class KlaObj public static void main(string args []) Klasse1 a; a = new Klasse1("heute", 47); Klasse1 b = new Klasse1

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen

Mehr

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java

Kapitel 2. Java: Der Einstieg. 2.1 Grundlegendes zu Java. 2.1.1 Historisches. 2.1.2 Eigenschaften von Java Kapitel 2 Java: Der Einstieg Im vorigen Kapitel haben wir die Syntax der Sprache Mini-Java kennengelernt. Bevor wir in Kapitel 3 ausführlich auf Syntax und Semantik der Programmiersprache Java eingehen

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

1. Der Einstieg in Java. Was heißt Programmieren?

1. Der Einstieg in Java. Was heißt Programmieren? 1. Der Einstieg in Java Lernziele: Am Ende dieses Kapitels sollen Sie wissen, aus welchen Bestandteilen ein Java-Programm besteht, Java-Programme übersetzen und ausführen können, Möglichkeiten der Kommentierung

Mehr

Objekt-Orientierte Programmierung

Objekt-Orientierte Programmierung Objekt-Orientierte Programmierung Ein OO-Programm modelliert eine Anwendung als eine Welt von Objekten, die miteinander in Beziehung stehen ( später). Ein Objekt kann andere Objekte erzeugen. Ein Objekt

Mehr

Vorkurs C++ Programmierung

Vorkurs C++ Programmierung Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:

Mehr

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

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6 Gudrun Fischer Sascha Kriewel programmierung@is.informatik.uni-duisburg.de Anmeldung zur Klausur! Übungsblatt Nr. 6 Um an der Klausur teilzunehmen, müssen sich Studierende der angewandten Informatik in

Mehr

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

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005 Einführung in die objektorientierte Programmierung mit Java Klausur am 19. Oktober 2005 Matrikelnummer: Nachname: Vorname: Semesteranzahl: Die Klausur besteht aus drei Frageblöcken zu den Inhalten der

Mehr

Prinzipien Objektorientierter Programmierung

Prinzipien Objektorientierter Programmierung Prinzipien Objektorientierter Programmierung Valerian Wintner Inhaltsverzeichnis 1 Vorwort 1 2 Kapselung 1 3 Polymorphie 2 3.1 Dynamische Polymorphie...................... 2 3.2 Statische Polymorphie........................

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Objektorientierung Grundbegriffe

Objektorientierung Grundbegriffe Objektorientierung Grundbegriffe Um Java programmieren zu können, ist es wichtig, einige objektorientierte Grundkenntnisse zu besitzen, denn die Sprache setzt voll auf dem OO-Paradigma auf. 3.1 Klassen

Mehr

Objektorientierte Programmierung OOP

Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Objektorientierte Programmierung OOP Ronja Düffel WS2012/13 08. Oktober 2013 Objektorientierte Programmierung OOP Objektorientierte Programmierung Objektorientierte

Mehr

Primitive Datentypen

Primitive Datentypen Primitive Datentypen 2 Arten von Datentypen: primitive Datentypen (heute) Objekte (später) Java ist streng typisiert, d.h. für jede Variable muß angegeben werden was für eine Art von Wert sie aufnimmt.

Mehr

4. Objektorientierung I Grundlagen der Programmierung 1 (Java)

4. Objektorientierung I Grundlagen der Programmierung 1 (Java) 4. Objektorientierung I Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 11. Oktober 2005 Einordnung im Kontext der

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr.

Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr. Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr. Martin Müller Informatik II 2. Semesterklausur Prüfungsmodul Informatik II

Mehr

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests.

Problemstellung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 24: Reflection 1. IDE und automatische Tests. Universität Osnabrück 1 Problemstellung 3 - Objektorientierte Programmierung in Java Vorlesung 24: Reflection 1 SS 2006 Prof. Dr. Frank M. Thiesing, FH Osnabrück Um ein Objekt anzulegen, eine seiner Methoden

Mehr

5. Threads, Serverprozesse und Benachrichtigungen

5. Threads, Serverprozesse und Benachrichtigungen 5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische

Mehr

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Java Einführung VARIABLEN und DATENTYPEN Kapitel 2 Inhalt dieser Einheit Variablen (Sinn und Aufgabe) Bezeichner Datentypen, Deklaration und Operationen Typenumwandlung (implizit/explizit) 2 Variablen

Mehr

Projekt AGB-10 Fremdprojektanalyse

Projekt AGB-10 Fremdprojektanalyse Projekt AGB-10 Fremdprojektanalyse 17. Mai 2010 1 Inhaltsverzeichnis 1 Allgemeines 3 2 Produktübersicht 3 3 Grundsätzliche Struktur und Entwurfsprinzipien für das Gesamtsystem 3 3.1 Die Prefuse Library...............................

Mehr

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung Übersicht 3.1 Modell Konto 3.2 Modell Konto - Erläuterungen 3.3 Benutzer Ein- und Ausgabe mit Dialogfenster I 3.4 Benutzer Ein- und Ausgabe mit Dialogfenster II 3.5 Klassen- und Objekteigenschaften des

Mehr

Vererbung, Polymorphismus

Vererbung, Polymorphismus Vererbung, Polymorphismus Einführung Beispiel Automobilbau: Eine Firma produziert eine Limousine Vererbung zur Erweiterung Vererbung zur Anpassung Oberklassen Aufruf Konstruktoren Polymorphismus Ein Kunde

Mehr

Kapitel 19: Klassen und Unterklassen

Kapitel 19: Klassen und Unterklassen Kapitel 19: Klassen und Unterklassen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

Folge 18 - Vererbung

Folge 18 - Vererbung Workshop Folge 18 - Vererbung 18.1 Ein einfacher Fall der Vererbung Schritt 1 - Vorbereitungen Besorgen Sie sich - vielleicht aus einer der Übungen der Folge 17 - ein fertiges und lauffähiges Listenprojekt,

Mehr

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

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

Mehr

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen

Mehr

Grundlagen von Python

Grundlagen von Python Einführung in Python Grundlagen von Python Felix Döring, Felix Wittwer November 17, 2015 Scriptcharakter Programmierparadigmen Imperatives Programmieren Das Scoping Problem Objektorientiertes Programmieren

Mehr

Objektorientierung: Klassen und Objekte

Objektorientierung: Klassen und Objekte Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen

Mehr

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 28 Testklasse public class TestGirokonto { public static void main(string[] args) { // erzeuge neues Konto Girokonto einkonto = new Girokonto();

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Übungsblatt 5 Lösungsvorschlag Objektorientierte Programmierung 22. 05. 2006 Lösung 9 (SMS-Eingabe am

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Dateien lesen und schreiben 2 Übersicht der heutigen Inhalte File Streams try-with-resources Properties csv-dateien 3 Klasse File Die Klasse java.io.file bietet Unterstützung im Umgang

Mehr

Arrays in Java. Text. Stefan Brotschi

Arrays in Java. Text. Stefan Brotschi Arrays in Java Stefan Brotschi Übersicht Einführung Deklaration, Generierung und Initialisierung Mehrdimensionale Arrays Arrays kopieren Klasse java.utils.arrays Kleine Knobeleien Einführung / Allgemein

Mehr

Java Generics & Collections

Java Generics & Collections Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes

Mehr

C++-Zusammenfassung. H. Schaudt. August 18, 2005

C++-Zusammenfassung. H. Schaudt. August 18, 2005 C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:

Mehr

Große Übung Praktische Informatik 1

Große Übung Praktische Informatik 1 Große Übung Praktische Informatik 1 2005-12-08 fuessler@informatik.uni-mannheim.de http://www.informatik.uni-mannheim.de/pi4/people/fuessler 1: Announcements / Orga Weihnachtsklausur zählt als Übungsblatt,

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

Java Schulung. Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Teil III: Java Klassen und Objekte Prof. Dr. Nikolaus Wulff Referenzvariablen Referenzvariablen verweisen auf (unbenannte) Objekte im Speicher. Uninitialisierte

Mehr

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe

Type Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Type Erasure in Java 5 Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Warum Generics? Containerklassen in Java 1.4 sind generisch nutzbar aber typunsicher. Public class LinkedList

Mehr

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik

1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation des Quellcodes 4. Werte- und Referenzsemantik Software-Technik: Vom Programmierer zur erfolgreichen Software-Technik: Vom Programmierer zur erfolgreichen 1. Von der Idee zur Software 2. Funktionen und Datenstrukturen Lehrbuch: 4.3 3. Organisation

Mehr