Java für Computerlinguisten

Größe: px
Ab Seite anzeigen:

Download "Java für Computerlinguisten"

Transkript

1 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 / 56

2 Heute: 1 Besprechung der Übungen vom Montag 2 Objektorientierte Programmierung Christian Scheible Java für Computerlinguisten 28. Juli / 56

3 Objektorientierte Programmierung Grundlagen Klassen Sichtbarkeit Statische Methoden/Attribute Vererbung Schnittstellen Wrapper Christian Scheible Java für Computerlinguisten 28. Juli / 56

4 Grundlagen Warum Klassen/Objekte? Anschaulichkeit: Menschen sind mit Objekten vertraut Zusammenfassung von Funktionen und Daten Wiederverwendbarkeit Klasse: Vorlage Objekt: Bisher Klasse war nur Rahmen für unsere Programme Nicht benutzt: Klasse als Vorlage für Objekte Christian Scheible Java für Computerlinguisten 28. Juli / 56

5 Grundlagen Aufbau eines Objekts class Regal Color farbe; float hoehe; float breite; float tiefe;... void aufbauen(); void ablegen(object gegenstand, int x, int y) Object herausnehmen(int x, int y);... Attribute (Variablen) Methoden (Funktionen) Christian Scheible Java für Computerlinguisten 28. Juli / 56

6 Grundlagen Begriffe in der Objektorientierten Programmierung Abstraktion Kapselung Polymorphie Vererbung Feedback Persistenz Christian Scheible Java für Computerlinguisten 28. Juli / 56

7 Grundlagen Abstraktion Wiederverwendbare Vorlagen Objekt: Instanz einer Klasse class Regal Regal braunesregal Regal weissesregal Christian Scheible Java für Computerlinguisten 28. Juli / 56

8 Grundlagen Kapselung Daten sind im Objekt enthalten Daten sind von außen nicht zugänglich Objekt bietet Methoden zur Veränderung der Daten Wozu? Interne Variablen, die der Benutzer der Klasse nicht braucht Variablen, die der Benutzer nicht verändern darf Christian Scheible Java für Computerlinguisten 28. Juli / 56

9 Grundlagen class Schwein private float gewicht; private float alter;... public void fuettern(); private void wachsen (int laenge);... Christian Scheible Java für Computerlinguisten 28. Juli / 56

10 Grundlagen Polymorphie Methoden reagieren verschieden abhängig von Aufruf Klassenzugehörigkeit Feedback Interaktion zwischen Objekten Persistenz Objekt existiert so lange, bis es zerstört wird Christian Scheible Java für Computerlinguisten 28. Juli / 56

11 Grundlagen Vererbung Neue Klassen können unter Benutzung alter Klassen definiert werden Die neue Klasse (Tochterklasse) erhält alle Attribute und Methoden der Mutterklasse class Fahrzeug class Moebel class Regal class Sitzmoebel class Stuhl class Bank Christian Scheible Java für Computerlinguisten 28. Juli / 56

12 Klassen Attribute class Buch String name; // String author; // Attribute int pubdate; // Attribut: Variable, die dem Objekt zugehört. Christian Scheible Java für Computerlinguisten 28. Juli / 56

13 Klassen Methoden class Buch String name; String author; int pubdate; void read() // Eine Methode //... int countpages() // Noch eine Methode //... Christian Scheible Java für Computerlinguisten 28. Juli / 56

14 Klassen Instanzen class Buecherei public static void main (String argv[]) Buch buch1 = new Buch(); Buch buch2 = new Buch(); //... buch1.name = "The Catcher in the Rye"; buch1.author = "J. D. Salinger"; buch1.pubdate = 1951; buch1.read(); Punkt (.) für Zugriff auf Inhalt des Objekts Christian Scheible Java für Computerlinguisten 28. Juli / 56

15 Klassen Konstruktor Was passiert beim Aufruf von new Buch()? Der Konstruktor liefert ein neues Objekt. class Buch String name; Buch () // Konstruktor ohne Argument Buch (String name) // Konstruktor mit Argument this.name = name; Christian Scheible Java für Computerlinguisten 28. Juli / 56

16 Klassen this this: Referenz für das Objekt, in dem wir uns befinden Beispiel: Unterscheidung zwischen Parameter und Objektvariable class Buch String name; void setname (String name) this.name = name; Christian Scheible Java für Computerlinguisten 28. Juli / 56

17 Sichtbarkeit Einschränkung des Zugriffs von anderen Klassen aus Kapselung Sichtbarkeitsstufen Öffentlich (public) Privat (private) Paketsichtbar Geschützt (protected) Christian Scheible Java für Computerlinguisten 28. Juli / 56

18 Sichtbarkeit Öffentlich public: Auf das Element darf von außen ohne Einschränkung zugegriffen werden. com.ikea.regal public void aufbauen();... BeliebigeAndereKlasse Christian Scheible Java für Computerlinguisten 28. Juli / 56

19 Sichtbarkeit Privat private: Auf das Element darf nur aus der selben Klasse zugegriffen werden. X... de.aldi.aushilfe com.ikea.regal private void aufbauen(); X... com.ikea.mitarbeiter Christian Scheible Java für Computerlinguisten 28. Juli / 56

20 Sichtbarkeit paketsichtbar Standard: Auf das Element darf nur aus dem selben Paket zugegriffen werden, aber nicht aus anderen Paketen. In der Praxis: Wenn die Klasse im gleichen Verzeichnis liegt. X... de.aldi.aushilfe com.ikea.regal void aufbauen();... com.ikea.mitarbeiter Christian Scheible Java für Computerlinguisten 28. Juli / 56

21 Sichtbarkeit Geschützt protected: Auf das Element darf der selben Klasse und davon abgeleiteten Klassen zugegriffen werden. Vererbung Christian Scheible Java für Computerlinguisten 28. Juli / 56

22 Sichtbarkeit class Buch private String name; boolean gelesen; public void lesen () gelesen = true; class Bibliothek public static void main (String [] args) Buch buch1 = new Buch(); buch1.lesen(); buch1.gelesen = false; // erlaubt buch1.name = "The Third Policeman"; // nicht erlaubt! --> Compilerfehler Christian Scheible Java für Computerlinguisten 28. Juli / 56

23 Statische Attribute class Fahrrad String marke; Fahrrad (String marke) this.marke = marke; Normale Variable Variable gehört zu einem Objekt Jedes Objekt bekommt eine eigene Instanz der Variable Wert der Variablen kann in jedem Objekt unterschiedlich sein Beispiel: String marke; Christian Scheible Java für Computerlinguisten 28. Juli / 56

24 Statische Attribute class Fahrrad String marke; static int anzahl_fahrraeder = 0; // statische Variable Fahrrad (String marke) this.marke = marke; anzahl_fahrraeder += 1; Statische Variable Variable gehört zu einer Klasse Jedes Objekt benutzt die selbe Instanz der Klasse Wert der Variablen ist in jedem Objekt gleich Beispiel: static int anzahl_fahrraeder (Instanzzähler) Christian Scheible Java für Computerlinguisten 28. Juli / 56

25 Statische Methoden class Fahrrad static boolean equal (Fahrrad f1, Fahrrad f2) //... void fahren () //... Normaler Aufruf: f1.fahren() Methode einem bestimmten Objekt zugeordnet f1, das vorher erstellt worden sein muss Statischer Aufruf: Fahrrad.equal(f1, f2) Methode keinem bestimmten Objekt zugeordnet, sondern der Klasse Christian Scheible Java für Computerlinguisten 28. Juli / 56

26 Vererbung Benutze vorhandene Klasse als Grundlage für neue Klassen class Fahrzeug class Moebel class Regal class Sitzmoebel class Stuhl class Bank Christian Scheible Java für Computerlinguisten 28. Juli / 56

27 Vererbung Syntax class Tochterklasse extends Mutterklasse Christian Scheible Java für Computerlinguisten 28. Juli / 56

28 class Moebel float gewicht; void aufbauen () System.out.println("Wir bauen ein Moebelstueck!"); class Regal extends Moebel // Regal erbt von Moebel float ablagevolumen; Regal (float gewicht, float ablagevolumen) this.gewicht = gewicht; // Variablen von Moebel werden uebernommen this.ablagevolumen = ablagevolumen; void aufbauen () System.out.println("Wir bauen ein Regal!"); Christian Scheible Java für Computerlinguisten 28. Juli / 56

29 Vererbung Konstruktor Konstruktoren werden nicht mitvererbt Zugriff auf den Konstruktor der Mutterklasse? class Moebel Moebel () System.out.print("Moebel wird gebaut") class Regal extends Moebel // Regal erbt von Moebel Regal () super(); Christian Scheible Java für Computerlinguisten 28. Juli / 56

30 Vererbung Typhierarchie Object Moebel Schrank Object ist immer die oberste Klasse Standard: Klasse erbt automatisch von Object Christian Scheible Java für Computerlinguisten 28. Juli / 56

31 Vererbung Automatische Typanpassung Regal regal1 = new Regal(); Moebel regal2 = new Regal(); Object regal3 = new Regal(); Moebel moebel1 = new Moebel(); Object moebel2 = new Moebel(); Erlaubt: Vom niedrigeren zum höheren Typ Verboten: Vom höheren zum niedrigeren Typ Christian Scheible Java für Computerlinguisten 28. Juli / 56

32 Vererbung Typecasting Object regal1 = new Regal(); Moebel regal2 = (Moebel) regal1; Regal regal3 = (Regal) regal1; Moebel regal4 = (Regal) regal1; Typ testen: variable instanceof Typ Christian Scheible Java für Computerlinguisten 28. Juli / 56

33 Vererbung Methoden überschreiben Mutterklasse und Tochterklasse haben Methode mit gleicher Signatur: Methode der Tochterklasse überschreibt die der Mutterklasse Einschränkungen Sichtbarkeit muss gleich oder schwächer sein Rückgabetyp kann verschieden sein Christian Scheible Java für Computerlinguisten 28. Juli / 56

34 Vererbung class A public String tostring () return "Instanz von Klasse A"; class B extends A public String tostring () return "Instanz von Klasse B"; tostring(): Wird benutzt, wenn System.out.print aufgerufen wird. Christian Scheible Java für Computerlinguisten 28. Juli / 56

35 public String tostring () return "Ich bin es." Bedeutung: Die annotierte Methode muss eine andere überschreiben Verhindert Fehler, public String tostring () Christian Scheible Java für Computerlinguisten 28. Juli / 56

36 Vererbung Finale Methoden public final String getname () return final: Methode darf von Unterklassen nicht überschrieben werden Christian Scheible Java für Computerlinguisten 28. Juli / 56

37 Vererbung Finale Klassen final class Regal extends Moebel //... final: Von dieser Klasse darf man nicht erben Christian Scheible Java für Computerlinguisten 28. Juli / 56

38 Vererbung Dynamische Bindung Polymorphie Methoden werden mitvererbt Geerbte Methoden können wir überschreiben Methoden können nicht wieder verloren werden Christian Scheible Java für Computerlinguisten 28. Juli / 56

39 Vererbung Dynamische Bindung Regal moebel1 = new Regal(); Moebel moebel2 = new Regal(); moebel1.aufbauen(); moebel2.aufbauen(); Prüfung zur Laufzeit: welche Implementierung von aufbauen() soll benutzt werden Variablen haben die Typen Object und Moebel Benutzt wird die Methode aus Regal Christian Scheible Java für Computerlinguisten 28. Juli / 56

40 Abstrakte Klassen Bisher: Wir können von jeder Klasse ein Objekt erstellen. Problem: Manchmal nicht so sinnvoll. Beispiel: Was für ein Objekt erzeugt Moebel? Lösung: Abstrakte Klasse abstract class Moebel Verboten: Moebel moebel1 = new Moebel(); Weiter Erlaubt: Moebel moebel1 = new Regal(); Christian Scheible Java für Computerlinguisten 28. Juli / 56

41 Abstrakte Klassen abstract class Moebel String name; float gewicht; public abstract void aufbauen (); public void setname(string name) this.name = name; Abstrakte Methode aufbauen(): Unterklasse muss diese Methode implementieren Nicht-abstrakte Methoden dürfen vorkommen (setname()) Christian Scheible Java für Computerlinguisten 28. Juli / 56

42 Abstrakte Klassen Umgang mit abstrakten Methoden aus der Oberklasse Implementieren Abstrakt lassen (unsere Klasse ist selbst abstrakt!) Christian Scheible Java für Computerlinguisten 28. Juli / 56

43 Interfaces (Schnittstellen) class Eins void x() System.out.println("A") class Zwei void x() System.out.println("B") class EinsZwei extends Eins, Zwei // sehr verboten! Abstrakte Klasse bestimmt Voraussetzungen, die Unterklasse erfüllen muss Idee: Von mehreren Klassen erben, um Voraussetzungen zu verbinden Problem: Welche Methode wird vererbt bei gleicher Signatur? (Oben: Methode x) Mehrfachvererbung verboten! Christian Scheible Java für Computerlinguisten 28. Juli / 56

44 Interfaces (Schnittstellen) Lösung: Interfaces interface KaufbarerGegenstand public static int konstante = 0; public void kaufen(); Unterschied zu abstrakten Klassen: Interface darf keine Implementierung enthalten Eine Klasse darf von mehreren Interfaces erben (eigentlich: Eine Klasse darf mehrere Interfaces implementieren) implements statt extends Variablen müssen static und final sein Christian Scheible Java für Computerlinguisten 28. Juli / 56

45 abstract class Moebel float gewicht; abstract void aufbauen (); interface Buyable void kaufen(); class Regal extends Moebel implements Buyable void aufbauen () System.out.println("baue Regal..."); public void kaufen() System.out.println("Kaufe Regal zum Preis von" + this.preis); Christian Scheible Java für Computerlinguisten 28. Juli / 56

46 Generische Klassen Generisch: Bekannt aus Ada? Implementierung der Klasse abhängig vom Typ class Liste<T> public void einfuegen(t wert) //... Liste<Integer> l1 = new Liste<Integer>(); Christian Scheible Java für Computerlinguisten 28. Juli / 56

47 Arbeiten mit Objekten Getter/Setter Manchmal wollen wir den direkten Zugriff auf Attribute nicht erlauben Kontrollierter Zugriff Methoden für Zugriff Auslesen: get() Schreiben: set() class ComplexNumber private float real, imaginary; public float getreal() return real; public void setreal(float real) this.real = real; Christian Scheible Java für Computerlinguisten 28. Juli / 56

48 Arbeiten mit Objekten tostring Identifikation eines Objekts Gibt Namen und Eigenschaften des Objekts aus Gibt nicht unbedingt den kompletten Inhalt aus Rückgabetyp: String, Sichtbarkeit: public class ComplexNumber float real, public String tostring() return getclass().getname() + String.format("[real=%f,imaginary=%f]", real, imaginary); Christian Scheible Java für Computerlinguisten 28. Juli / 56

49 Arbeiten mit Objekten class ComplexNumber float real, public String tostring() return getclass().getname() + String.format("[real=%f,imaginary=%f]", real, imaginary); Aufruf ComplexNumber c1 = new ComplexNumber(); System.out.println(c1); // geht wegen tostring Christian Scheible Java für Computerlinguisten 28. Juli / 56

50 Arbeiten mit Objekten equals Methode stellt Gleichheit mit einem anderen Objekt fest Beispiel: "a".equals("b") Rückgabetyp: boolean, Argumenttyp: Object class ComplexNumber float real, public boolean equals (Object obj) ComplexNumber that = (ComplexNumber) obj; return (this.real == that.real) && (this.imaginary == that.imaginary); Christian Scheible Java für Computerlinguisten 28. Juli / 56

51 Arbeiten mit Objekten Zuweisung mit = bei Referenztypen erzeugt keine Kopie Andere Methode zur Vervielfältigung nötig Copy-Konstruktor class ComplexNumber float real, imaginary; ComplexNumber (ComplexNumber that) this.real = that.real; this.imaginary == that.imaginary; ComplexNumber a = ComplexNumber(1,3); ComplexNumber b = ComplexNumber(a) Christian Scheible Java für Computerlinguisten 28. Juli / 56

52 Arbeiten mit Objekten Garbage Collection Idee: Wir wollen Speicher sparen Daten bleiben so lange im Speicher, bis sie nicht mehr gebraucht werden Problem: Wann werden sie nicht mehr gebraucht? Lösung: Garbage Collector Sucht regelmäßig nach solchen Objekten Methode: Generationeller Zähler Christian Scheible Java für Computerlinguisten 28. Juli / 56

53 Arbeiten mit Objekten finalize Garbage Collector löscht überflüssige Objekte Was passiert beim Löschen? finalize Exceptions werden ignoriert, Garbage Collector läuft weiter Objekte mit finalize kosten Zeit! Nicht vergessen: super.finalize() class X public void finalize() super.finalize(); System.out.println("Loesche ein X"); Christian Scheible Java für Computerlinguisten 28. Juli / 56

54 Wrapper Wrapper: Klasse, die etwas umschließt (z.b. Objekt, andere Klasse) Ziel: Bestimmte Spezifikationen erfüllen, Methoden Primitive Wrapper: Für die primitiven Datentypen (int, float,...) Dadurch als Objekte verfügbar! Autoboxing/-unboxing: Java konvertiert primitive Variablen zu Objekten, wenn nötig Primitiv byte short int long float double char boolean Wrapper Byte Short Integer Long Float Double Character Boolean Christian Scheible Java für Computerlinguisten 28. Juli / 56

55 Wrapper Methoden (Integer) equals() Gleichheit intvalue() Konversion nach int tostring() Konversion nach String parseint() Konversion von String Integer.toString(new Integer(70)); // "70" Integer.parseInt("12345"); // Christian Scheible Java für Computerlinguisten 28. Juli / 56

56 Literatur Sun. JDK 6 Documentation. Sun. The Java Tutorials. C. Ullenboom. Java ist auch eine Insel. Galileo Press, Christian Scheible Java für Computerlinguisten 28. Juli / 56

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Javakurs 2013 Objektorientierung

Javakurs 2013 Objektorientierung Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0

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

Gebundene Typparameter

Gebundene Typparameter Gebundene Typparameter interface StringHashable { String hashcode(); class StringHashMap { public void put (Key k, Value v) { String hash = k.hashcode();...... Objektorientierte

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

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

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

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

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

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

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

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

Vererbung. Martin Wirsing. Ziele. Vererbung

Vererbung. Martin Wirsing. Ziele. Vererbung 2 Ziele Martin Wirsing en Begriff der einfachen verstehen und Redefinition von Oberklassenmethoden verstehen spolymorphie verstehen ie Klasse Object kennenlernen in Zusammenarbeit mit Michael Barth, Philipp

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

Javakurs zu Informatik I. Henning Heitkötter

Javakurs zu Informatik I. Henning Heitkötter Javakurs zu Informatik I Arrays vergleichen Implementieren Sie folgende Methode, die prüft, ob die Elemente der beiden Arrays an jeder Position übereinstimmen: public static boolean identisch(int[] a,

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

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

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

1.2 Attribute und Methoden Aufbau einer Java-Klasse: Aufbau einer Java-Klasse: public class Quadrat { int groesse; int xposition; String farbe; boolean istsichtbar; public void sichtbarmachen() { istsichtbar = true; public void horizontalbewegen(int distance){

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

Teil 2: OOP und JAVA (Vorlesung 11)

Teil 2: OOP und JAVA (Vorlesung 11) Teil 2: OOP und JAVA (Vorlesung 11) Modul: Programmierung B-PRG Grundlagen der Programmierung II Prof. Dot.-Ing. Roberto Zicari Professur für Datenbanken und Informationssysteme (FB 12) 28.06.06 1 Teil

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

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

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

Ein erstes Java-Programm

Ein erstes Java-Programm Ein erstes Java-Programm public class Rechnung { public static void main (String [] arguments) { int x, y; x = 10; y = -1 + 23 * 33 + 3 * 7 * (5 + 6); System.out.print ("Das Resultat ist "); System.out.println

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

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

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

Klassenbeziehungen & Vererbung

Klassenbeziehungen & Vererbung Klassenbeziehungen & Vererbung VL Objektorientierte Programmierung Raimund Kirner teilweise nach Folien von Franz Puntigam, TU Wien Überblick Arten von Klassenbeziehungen Untertypen versus Vererbung in

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

Client-Server-Beziehungen

Client-Server-Beziehungen Client-Server-Beziehungen Server bietet Dienste an, Client nutzt Dienste Objekt ist gleichzeitig Client und Server Vertrag zwischen Client und Server: Client erfüllt Vorbedingungen eines Dienstes Server

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

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

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala Das Typsystem von Scala 1 Eigenschaften Das Typsystem von Scala ist statisch, implizit und sicher 2 Nichts Primitives Alles ist ein Objekt, es gibt keine primitiven Datentypen scala> 42.hashCode() res0:

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

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung. Hochschule Harz Programmierung1 Tutorial 11: FB Automatisierung und Informatik Dipl.-Inf. Dipl.-Ing. (FH) M. Wilhelm Programmierung 1 für MI / WI Thema: Sortieren und generische Klassen Versuchsziele Kenntnisse

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

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

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

Dynamische Sprachen auf der JVM

Dynamische Sprachen auf der JVM Dynamische Sprachen auf der JVM Christian Müller Leibniz Universität Hannover 1 Einführung Der Begriff dynamische Sprache ist nicht genau definiert, sehr oft wird er lediglich mit dynamischer Typprüfung

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

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

Android will doch nur spielen. Java Eine kurze Einführung

Android will doch nur spielen. Java Eine kurze Einführung Android will doch nur spielen Java Eine kurze Einführung Agenda Einführung in Java Syntax und Semantik Komplexe Datenstrukturen OOP Weitere Java-Elemente 2 Einführung in Java Was ist Java? lt. Sun: einfach

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

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

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

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

Mehr

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

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg Klassen und Objekte Einführung in Java Folie 1 von 28 12. Mai 2011 Ivo Kronenberg Inhalt Objekte Klassendefinitionen Datenelemente (Klassenattribute) Instanzieren von Objekten Konstruktoren Vergleich primitive

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

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

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Übung 1 mit C# 6.0 MATTHIAS RONCORONI Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,

Mehr

Theorie zu Übung 8 Implementierung in Java

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

Mehr

OO Softwareentwicklung

OO Softwareentwicklung OO Softwareentwicklung Objektorientierung Prof. Dr. Bernhard Schiefer 1 OO als Ansatz zur Verbesserung der Software-Qualität Modellierung der Welt als selbständig agierende Objekte. Gemeinsame Beschreibung

Mehr

Liste Programmieren Java Überblick

Liste Programmieren Java Überblick Liste Programmieren Java Überblick 1 Was ist Java? 2 Klassen und Objekte 3 Vererbung 4 Schnittstellen 5 Innere Klassen 6 Exceptions 8 Datenstrukturen und Algorithmen 9 Ein-/Ausgabe 10 Threads 11 GUI-Programmierung

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

Einführung in die Java- Programmierung

Einführung in die Java- Programmierung Einführung in die Java- Programmierung Dr. Volker Riediger Tassilo Horn riediger horn@uni-koblenz.de WiSe 2012/13 1 Wichtig... Mittags keine Pommes... Praktikum A 230 C 207 (Madeleine + Esma) F 112 F 113

Mehr

Wiederholung zur Vorlesung Programmieren

Wiederholung zur Vorlesung Programmieren Wiederholung zur Vorlesung Jan 2007 Wintersemester 2007/2008 Computerlinguistik, Campus DU Einstieg Erläutern sie in knappen Worten die notwendigen Schritte um ein einfaches Java-Programm zu schreiben

Mehr

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Objekt Objekt kapselt Variablen und Routinen Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten Eigenschaften jedes Objekts: Identität (identisch = mehrere

Mehr

Factory Method (Virtual Constructor)

Factory Method (Virtual Constructor) Factory Method (Virtual Constructor) Zweck: Definition einer Schnittstelle für Objekterzeugung Anwendungsgebiete: Klasse neuer Objekte bei Objekterzeugung unbekannt Unterklassen sollen Klasse neuer Objekte

Mehr

Einführung in die Informatik

Einführung in die Informatik Einführung in die Informatik Jochen Hoenicke Software Engineering Albert-Ludwigs-University Freiburg Sommersemester 2014 Jochen Hoenicke (Software Engineering) Einführung in die Informatik Sommersemester

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 Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff Java Reflection Die Java Reflection API liefert per Introspection Informationen über Klassen => Meta-Daten.

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

Mehr

Distributed Computing Group

Distributed Computing Group JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird

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

Grundkonstrukte der Objektorientierung in Java, C# und C++

Grundkonstrukte der Objektorientierung in Java, C# und C++ Grundkonstrukte der Objektorientierung in Java, C# und C++ 2 Viele Patterns basieren auf einer Kombination einiger zentraler Modellierungskonstrukte, namentlich auf Schnittstellen- und Implementierungsvererbung

Mehr

SWE1 / Übung 9 (11.01.2012)

SWE1 / Übung 9 (11.01.2012) SWE1 / Übung 9 (11.01.2012) Vererbung Zugriffskontrolle Motivation für Vererbung (1) Objekte in der realen Welt kommen oft in ähnlichen Varianten (Attribute, Verhalten) vor Gliederung durch hierarchische

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

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

Vererbung. Was versteht man unter dem Begriff Vererbung?

Vererbung. Was versteht man unter dem Begriff Vererbung? Was versteht man unter dem Begriff Vererbung? Elternkonstrukt - Datenelemente - Methoden o Deklaration o Definition Kindkonstrukt... Main... Elternkonstrukt b = new Kindkonstrukt() b.fn() Komponenten &

Mehr

A(T1) A(T2) A(T1) A(T2)

A(T1) A(T2) A(T1) A(T2) Kovarianz und Kontravarianz in Java Abstract In diesem Artikel werden die Java-Regeln für Kovarianz und Kontravarianz zusammengefasst. Hierzu wird Typkompatibilität definiert und die Fälle untersucht,

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

2.4.3 Polymorphie (Wiederholung von Alp2)

2.4.3 Polymorphie (Wiederholung von Alp2) 2.4.3 Polymorphie (Wiederholung von Alp2) Sparbuch einsparbuch = new Sparbuch(3.0); Konto einkonto; KontoDrucker = new KontoDrucker(); KontoDrucker.setzeKonto(einSparbuch); einkonto = einsparbuch; Wie

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

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

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only

Methoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer

Mehr

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

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

Mehr

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

Repetitorium Informatik (Java)

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

Mehr

OOP III Auf den Grund gegangen (fast)

OOP III Auf den Grund gegangen (fast) OOP III Auf den Grund gegangen (fast) Vorüberlegungen und -arbeiten Eigenschaften = Instanzvariablen Größe Geschlecht class Vogel Fähigkeiten = Methoden: fortpflanzen fressen Eine Klasse Vogel soll definiert

Mehr