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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

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

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

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

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

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

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

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

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

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Klausur zur Einführung in die objektorientierte Programmierung mit Java Klausur zur Einführung in die objektorientierte Programmierung mit Java im Studiengang Informationswissenschaft Prof. Dr. Christian Wolff Professur für Medieninformatik Institut für Medien-, Informations-

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

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

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

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

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Sichtbarkeit & statische Methoden Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben Nicht sichtbare Methoden Wollen Eltern bestimmte Methoden vor den

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

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

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

Programmieren Tutorium

Programmieren Tutorium Programmieren Tutorium Tom Schildhauer Tutorium 12 Universität Karlsruhe (TH) Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by Tom Schildhauer,

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

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

Innere Klassen in Java

Innere Klassen in Java Innere Klassen in Java SS 2012 Prof. Dr. Margarita Esponda Innere Klassen Klassen- oder Interfacedefinitionen können zur besseren Strukturierung von Programmen verschachtelt werden Eine "Inner Class" wird

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

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252)

Prof. Dr. Uwe Schmidt. 21. August 2007. Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Prof. Dr. Uwe Schmidt 21. August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (IA 252) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen Sie Ihre Antworten und fertigen

Mehr

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf http://informatik.swoke.de. Seite 1 von 22 Kapitel 19 Vererbung, UML Seite 1 von 22 Vererbung - Neben der Datenabstraktion und der Datenkapselung ist die Vererbung ein weiteres Merkmal der OOP. - Durch Vererbung werden die Methoden und die Eigenschaften

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

Computeranwendung und Programmierung (CuP)

Computeranwendung und Programmierung (CuP) Computeranwendung und Programmierung (CuP) VO: Peter Auer (Informationstechnologie) UE: Norbert Seifter (Angewandet Mathematik) Organisatorisches (Vorlesung) Vorlesungszeiten Montag 11:15 12:45 Freitag

Mehr

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7 Java Einführung Umsetzung von Beziehungen zwischen Klassen Kapitel 7 Inhalt Wiederholung: Klassendiagramm in UML Java-Umsetzung von Generalisierung Komposition Assoziationen 2 Das Klassendiagramm Zweck

Mehr

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ

Workshop 6. Einführung in die objektorientierte Programmierung. Teil: Java mit BlueJ IBBB 2010 Workshop 6 Einführung in die objektorientierte Programmierung Dozenten: J. Penon, J. Frank, A. Schindler Teil: Java mit BlueJ Dozent: A. Schindler Einf. i. d. OOP - Java u. BlueJ / A. Schindler

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

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de s & Servlet Integration Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht Motivation Das Interface Stateful und Stateless s Programmierung einer Stateful

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Java Kurs für Anfänger Einheit 4 Klassen und Objekte

Java Kurs für Anfänger Einheit 4 Klassen und Objekte Java Kurs für Anfänger Einheit 4 Klassen und Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 13. Juni 2009 Inhaltsverzeichnis klasse

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

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

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

188.154 Einführung in die Programmierung für Wirtschaftsinformatik

188.154 Einführung in die Programmierung für Wirtschaftsinformatik Beispiel 1 Vererbung (Liste) Gegeben sind die beiden Klassen ListNode und PersonNode. 188.154 Einführung in die Programmierung für Wirtschaftsinformatik Wiederholung, Prüfungsvorbereitung Monika Lanzenberger

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

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla

Klassendiagramm. Kurzer Überblick über UML - Stand 2006. BlaBla BlaBla Diese Kennzeichnungen sind nur Erläuterungen und nicht Bestandteil des Diagramms Quelle: P.Grässle, H.Baumann, P.Baumann, UML projektorientiert, Galileo Verlag, 2003 21 Primäre Begriffe Kapselung

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

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

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Objektorientierte Programmierung für Anfänger am Beispiel PHP Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten

Mehr

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck Javadoc Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

Mehr

Objektorientiertes JavaScript

Objektorientiertes JavaScript Objektorientiertes JavaScript Christoph Fabritz dm121506@fhstp.ac.at http://goo.gl/jzqxnw Inhalt JavaScript Objektorientierung OO in JavaScript Literatur JavaScript Interpretiert / gescriptet Dynamische

Mehr

4. AuD Tafelübung T-C3

4. AuD Tafelübung T-C3 4. AuD Tafelübung T-C3 Simon Ruderich 17. November 2010 Arrays Unregelmäßige Arrays i n t [ ] [ ] x = new i n t [ 3 ] [ 4 ] ; x [ 2 ] = new i n t [ 2 ] ; for ( i n t i = 0; i < x. l e n g t h ; i ++) {

Mehr

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag Ludwig-Maximilians-Universität München WS 2015/16 Institut für Informatik Übungsblatt 9 Prof. Dr. R. Hennicker, A. Klarl Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung:

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 Pommes... Praktikum A 230 C 207 (Madeleine) F 112 F 113 (Kevin) E

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

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

Applet Firewall und Freigabe der Objekte

Applet Firewall und Freigabe der Objekte Hauptseminar Applet Firewall und Freigabe der Objekte Nachweis von Sicherheitseigenschaften für JavaCard Jin Zhou Ein Überblick über diesen Vortrag Applet Firewall Kontext JCRE Entry Point Objekt Shareable

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

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

PHP Aufbaukurs. Tag 3. PHP5 & Klassen

PHP Aufbaukurs. Tag 3. PHP5 & Klassen PHP Aufbaukurs Tag 3. PHP5 & Klassen Organisatorisches 2 Igor Olkhovskiy Dr. Dipl.- Ing. Kontakt: olkhovskiy@rrzn.uni-hannover.de PHP Aufbaukurs 19.09.2006 Folie 2 PHP. OOP. Geschichte 3 PHP/FI ( PHP 1

Mehr

Vorkurs Informatik WiSe 15/16

Vorkurs Informatik WiSe 15/16 Java 7 Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 21.10.2015 Technische Universität Braunschweig, IPS Überblick OO in Java Vererbung Abstrakte Klassen und Interfaces 21.10.2015 Dr. Werner Struckmann

Mehr

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

Institut für Programmierung und Reaktive Systeme. Java 7. Markus Reschke Institut für Programmierung und Reaktive Systeme Java 7 Markus Reschke 14.10.2014 Vererbung in Java Vererbung ermöglicht es, Klassen zu spezialisieren Wiederverwendung vorhandener Klassen Kindsklasse erhält

Mehr

Assoziation und Aggregation

Assoziation und Aggregation Assoziation und Aggregation Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03 2 Ziele Verstehen der Begriffe Assoziation und Aggregation Implementierung von Assoziationen in Java schreiben

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

Ü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

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 16. Juli 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90 Minuten.

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

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek Programmieren I Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2008/2009 1 / 22 2 / 22 Strategie zum Entwurf von Klassen Beispiele Objektorientierte Sichtweise: Mit welchen Objekten habe ich es

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

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x),

Institut für Programmierung und Reaktive Systeme 25. August 2014. Programmier-Labor. 04. + 05. Übungsblatt. int binarysearch(int[] a, int x), Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 25. August 2014 Programmier-Labor 04. + 05. Übungsblatt Aufgabe 21: a) Schreiben Sie eine Methode

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 Collections

Java Einführung Collections Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...

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

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

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X

Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X Xcode/Cocoa/Objective-C Crashkurs Programmieren unter Mac OS X SwissMacMeeting #1 26. Juni 2004 Messeturm Basel http://mac.naepflin.com Was ist das Ziel dieses Kurses? Starthilfe Einblick in die Möglichkeiten,

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

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny

Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny Programmiersprache 2 (C++) Prof. Dr. Stefan Enderle NTA Isny 3. UML Klassendiagramm Nachtrag 3.1 Einführung UML UML ist eine standardisierte Sprache zur Modellierung von Systemen. In UML werden graphische

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen

Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur. Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Kapselung und Methodenbindung: Javas Designprobleme und ihre Korrektur Dipl.-Inform. Peter Müller Prof. Arnd Poetzsch-Heffter Fernuniversität Hagen Gliederung Einführung: Methodenbindung und Kapselung

Mehr