Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe

Größe: px
Ab Seite anzeigen:

Download "Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe"

Transkript

1 Kurs 1618 SS 2009 (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Einführung in die objektorientierte Programmierung Nachklausur am Dauer: 3 Std., Uhr Lesen Sie zuerst die Hinweise auf der folgenden Seite! Matrikelnummer: Geburtsdatum:.. Klausurort: Aufgabe Summe habe bearbeitet maximal erreicht Korrektur Herzlichen Glückwunsch, Sie haben die Klausur bestanden. Note:... Sie haben die Klausur leider nicht bestanden. Für den nächsten Versuch wünschen wir Ihnen viel Erfolg. Die nächste Klausur findet im SS 2010 statt. Hagen, den Im Auftrag 2009 / 2010 FernUniversität in Hagen

2 Hinweise zur Bearbeitung 1. Prüfen Sie die Vollständigkeit Ihrer Unterlagen. Die Klausur umfasst auf insgesamt 18 Seiten : 1 Deckblatt Diese Hinweise zur Bearbeitung 10 Aufgaben auf Seite 3-16 Zwei zusätzliche Seiten für weitere Lösungen 2. Füllen Sie jetzt bitte zuerst das Deckblatt aus: Name, Vorname und Adresse, Matrikelnummer, Geburtsdatum und Klausurort. 3. Schreiben Sie Ihre Lösungen mit Kugelschreiber oder Füllfederhalter (kein Bleistift) direkt in den bei den jeweiligen Aufgaben gegebenen, umrahmten Leerraum. Benutzen Sie auf keinem Fall die Rückseiten der Aufgabenblätter. Versuchen Sie, mit dem vorhandenen Platz auszukommen, sie dürfen auch stichwortartig antworten. Sollten Sie wider Erwarten nicht mit dem vorgegebenen Platz auskommen, benutzen Sie bitte die beiden an dieser Klausur anhängenden Leerseiten. Es werden nur Aufgaben gewertet, die sich auf dem offiziellen Klausurpapier befinden. Eigenes Papier ist nur für Ihre persönlichen Notizen erlaubt. 4. Kreuzen Sie die bearbeiteten Aufgaben auf dem Deckblatt an. Schreiben Sie unbedingt auf jedes Blatt Ihrer Klausur Ihren Namen und Ihre Matrikelnummer, auf die Zusatzblätter auch die Nummer der Aufgabe. 5. Geben Sie die gesamte Klausur ab. Lösen Sie die Blätter nicht voneinander. 6. Es sind keine Hilfsmittel zugelassen. 7. Lesen Sie vor der Bearbeitung einer Aufgabe den gesamten Aufgabentext sorgfältig durch. 8. Es sind maximal 100 Punkte erreichbar. Wenn Sie mindestens 40 Punkte erreichen, haben Sie die Klausur bestanden. 9. Sie erhalten die korrigierte Klausur zurück zusammen mit einer Bescheinigung für das Finanzamt und ggf. dem Übungsschein. 10. Legen Sie jetzt noch Ihren Studentenausweis und einen amtlichen Lichtbildausweis bereit, dann kann die Arbeit beginnen. Viel Erfolg! Seite 2 von 18

3 Aufgabe 1: Begriffe der Objektorientierung Gegeben sei folgendes Programmfragment. public class MyClass { static String m(){ b = false; return ""; public int i = 1; { i = 2; static boolean b; class C extends MyClass{ C(int i){ Object a = m(); void n(){ m(); int x; Zählen Sie auf: Alle Konstanten: 1, 2, false, "" Alle lokale Variablen: Alle Objektattribute: Alle Klassenattribute: Alle Konstruktoren: Alle Objektmethoden: Alle Klassenmethoden: a im Konstruktor von C int i, int x static boolean b C(int i){ void n(){ static string m(){ Alle Initialisierungsblöcke: { i = 2; Alle Überladungen: Jedes Subtyping: keine vorhanden Object a = m(); (String auf Object) Seite 3 von 18

4 Aufgabe 2: Ausnahmebehandlung Es soll eine Klasse in Java implementiert werden, welche ein Warenlager repräsentiert. Um ein Entnehmen von Waren aus einem leeren Lager zu verhindern, soll gegebenenfalls eine Ausnahme in Form einer LagerIstLeerException ausgelöst werden, sobald dieser Fall eintritt. Ergänzen Sie das folgende Programm an den vorgesehenen Stellen um solch eine Ausnahmebehandlung. class Lager { int lagerstand = 0; public void lagere(int anzahl) { lagerstand = lagerstand + anzahl; public void entnehme(int anzahl) throws LagerIstLeerException { (1 Punkt) if (lagerstand - anzahl < 0) throw new LagerIstLeerException(); (3 Punkte) lagerstand = lagerstand - anzahl; class LagerIstLeerException extends Exception { public class LagerTest { public static void main(string[] args) { Lager lager = new Lager(); lager.lagere(3); try { (1 Punkt) lager.entnehme(2); catch (LagerIstLeerException e) { // Hier ggf. weitere Ausnahmebehandlung e.printstacktrace(); (3 Punkte) Seite 4 von 18

5 Aufgabe 3: Abstrakte Klassen, Typen, Sichtbarkeit Zu folgendem Programmfragment meldet der Java-Compiler fünf Compilerfehler. abstract class SuperTest { protected Object o = f("42"); private String f(string s) { return s; abstract void a(); class Test extends SuperTest { String[] args = {"d", null; abstract void m(); void l() { main(args); Integer s = o; f("abc"); public static void main(string[] args) { System.out.println(this.args[0]); Finden und begründen Sie die 5 Compilerfehler anhand der Hinweise: Compilerfehler zu Sichtbarkeiten: Die Methode f ist in l() in Test nicht sichtbar. Compilerfehler im Zusammenhang mit statischen Deklarationen: In der statischen main-methode in Test darf sich nicht auf das nicht statische Attribut this.args bezogen werden Compilerfehler im Zusammenhang mit dem Erben von abstrakten Klassen: Compilerfehler im Zusammenhang mit Subtyping: Test muss die abstrakte Methode a() aus SuperTest implementieren oder selbst abstrakt sein. In l() darf der Integer-Variable kein Object o zugewiesen werden. (Object ist kein Subtyp von Integer) Compilerfehler im Zusammenhang mit der Deklaration abstrakter Methoden: Es darf keine abstrakte Methode m() in der nicht abstrakten Klasse Test deklariert werden. (jeweils 2 Punkte) Seite 5 von 18

6 Aufgabe 4: Überschreiben und Überladen Gegeben sei folgendes Java-Programm: public class Zoohandlung { public static void main(string[] args) { Fisch fisch = new Goldfisch(); Vogel vogel1 = new Vogel(); Vogel vogel2 = new Rabe(); Amsel amsel = new Amsel(); Goldfisch goldfisch = new Goldfisch(); Super sup1 = new Super(); Super sup2 = new Sub(); sup2.m(vogel1, fisch); sup1.m(vogel2, fisch); sup1.m(vogel1, goldfisch); sup2.m(vogel1, goldfisch); sup1.m(amsel, vogel2); class Super { public void m(tier t1, Tier t2) { System.out.println("1"); public void m(tier t, Fisch f) { System.out.println("2"); class Sub extends Super { public void m(tier t1, Fisch t2) { System.out.println("3"); public void m(vogel v, Fisch f) { System.out.println("4"); class Tier { class Fisch extends Tier { class Goldfisch extends Fisch { class Vogel extends Tier { class Amsel extends Vogel { class Rabe extends Vogel { (Fortsetzung der Aufgabe auf folgender Seite) Seite 6 von 18

7 Begründen Sie, warum folgende Anweisungen zu welcher Ausgabe führen: (Fortsetzung von Aufgabe 4) sup2.m(vogel1, fisch); Ausgabe: 3 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Diese wird in Sub von der Methode 3 (nicht der Methode 4!) überschrieben, weswegen die Ausgabe 3 lautet. sup1.m(vogel2, fisch); Ausgabe: 2 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Da auch der Laufzeittyp von sup1 Super ist, wird 2 ausgegeben. sup1.m(vogel1, goldfisch); Ausgabe: 2 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Da auch der Laufzeittyp von sup1 Super ist, wird 2 ausgegeben. sup2.m(vogel1, goldfisch); Ausgabe: 3 Begründung: Von beiden überladenen Methoden m in Super ist 2 die speziellere, weswegen der Compiler an diese bindet. Zur Laufzeit wird dann aber 2 von 3 überschrieben. sup1.m(amsel, vogel2); Ausgabe: 1 Begründung: Von beiden überladenen Methoden m in Super ist 1 die einzige mit überhaupt passender Signatur. (jeweils 2 Punkte; ohne Begründung keine Punkte) Seite 7 von 18

8 Aufgabe 5: Generische Typen / Objektgeflechte Es soll in Java ein Stack implementiert werden, welcher die beiden Methoden push und pop bereitstellt. Folgendes Programm zeigt eine Verwendung des Stacks. public class StackUser { public static void main(string[] args){ Stack<String> mystack = new Stack<String>(); mystack.push("erstens"); mystack.push("zweitens"); System.out.println(myStack.pop() + " " + mystack.pop()); Die erwartete Ausgabe lautet: Zweitens Erstens Geben Sie eine Implementierung des Stacks an! Die unten stehende Klasse StackElement kann Ihnen dabei hilfreich sein. Sie brauchen keine Ausnahmebehandlungen, z.b. für den Fall, dass von einem leeren Stack ein Element entfernt werden soll, implementieren. public class Stack<T> { private StackElement<T> top = null; public void push(t element) { top = new StackElement<T>(top, element); public T pop() { T removedelement = top.getelement(); top = top.getnext(); return removedelement; public class StackElement<T> { private T element; private StackElement<T> next; public StackElement(StackElement<T> next, T element) { this.next = next; this.element = element; public T getelement() { return element; public StackElement<T> getnext() { return next; Seite 8 von 18

9 Aufgabe 6: this Für das Schlüsselwort this gibt es in Java mehrere Verwendungen. Was bezeichnet this im Rumpf einer Methode? this bezeichnet im Rumpf einer Methode das Objekt, dem die Nachricht geschickt wurde, die zur Ausführung der Methode führte, auch als "impliziter Parameter" des Methodenaufrufs bezeichnet. Was bezeichnet this innerhalb eines Konstruktors? In einem Konstruktor bezeichnet this das Objekt, das gerade initialisiert wird. Warum führt die Verwendung von this innerhalb des Rumpfs einer statischen Methode (mit Ausnahme von Konstruktoren) zu einem Compilerfehler? this bezeichnet im Rumpf einer Methode das Objekt, dem die Nachricht geschickt wurde. Statische Methoden werden aber nicht auf einem konkreten Objekt, sondern nur auf einem Typ aufgerufen, weswegen die Verwendung von this hier keinen Sinn ergibt. (Fortsetzung der Aufgabe auf folgender Seite) Seite 9 von 18

10 Gegeben sei folgendes Codebeispiel: public class Test { private int bla; private String blubb; (Fortsetzung von Aufgabe 6) public Test(int bla, String blubb) { this.bla = bla; this.blubb = blubb; Warum sind hier die this notwendig? Die Attribute bla und blubb sind durch eine gleichnamige lokale Variablen verdeckt, man will aber die Attribute ansprechen. Es liegt der typische Fall einer Attributinitialisierung im Konstruktor durch übergebene Parameter vor. Die this sind also nötig, damit klar ist, dass bla bzw. blubb auf der linken Seite der Zuweisung das Attribut meint und nicht die gleichnamige lokale Variable. Gegeben sei das folgende weitere Beispiel: public class Test { private int x; public Test(int bla) { x = bla; dosomething(); public Test() { this(42); Wozu wird hier das this gebraucht? Hier wird mittels this ein anderer Konstruktor der gleichen Klasse aufgerufen. Der Vorteil solcher - häufig vorkommenden - Konstrukte ist z.b., dass man Initialisierungen, die allen Konstruktoren gemeinsam sind, nur einmal in dem einen Konstruktor schreiben muss, den alle anderen verwenden. Seite 10 von 18

11 Aufgabe 7: AWT Schreiben Sie ein Programm, das ein Hauptfenster auf dem Bildschirm erzeugt. Dabei soll Ihr Programm aus der Klasse BaseFrame und der Klasse BaseFrameTest bestehen. Die Klasse BaseFrameTest enthält die main-methode. Sie erzeugt ein Fenster vom Typ BaseFrame und macht es sichtbar. Die Klasse BaseFrame ist Unterklasse von Frame. Sie definiert ein Fenster der Größe 300 x 400 an der Position 100, 100. Das Fenster kann durch Mausklick auf das Schließen-Symbol in der Titelleiste des Fensters geschlossen werden. import java.awt.frame; import java.awt.event.windowadapter; import java.awt.event.windowevent; class BaseFrame extends Frame { public BaseFrame() { class ClosingBeobachter extends WindowAdapter { public void windowclosing(windowevent e) { System.exit(0); addwindowlistener(new ClosingBeobachter()); setsize(300, 400); setlocation(100, 100); public class BaseFrameTest { public static void main(string argv[]) { Frame f = new BaseFrame(); f.setvisible(true); Da der WindowAdapter nur innerhalb von BaseFrame verwendet wird, kann er auch als anonyme Klasse realisiert werden: class BaseFrame extends Frame { BaseFrame() { addwindowlistener(new WindowAdapter() { public void windowclosing(windowevent e) { System.exit(0); ); setsize(300, 400); setlocation(100, 100); Seite 11 von 18

12 Aufgabe 8: Polymorphie Gegeben ist folgendes Programmfragment: LinkedList ls = new LinkedList(); ls.addlast("letztes Element"); ((String) ls.getlast()).indexof("elem"); ls.addlast(new Object()); ((String) ls.getlast()).indexof("elem"); Welche Art von Polymorphie kommt hier zur Anwendung? An welcher Stelle im Programm tritt dabei was für eine Art von Fehler auf? Es handelt sich um Subtyp-Polymorphie. Es kommt in der letzten Zeile zu einer java.lang.classcastexception. Das zuletzt (in Zeile 4) der Liste angehängte Objekt ist vom Typ Object. Bei Entnahme dieses Objekts in Zeile 5 wird es auf den Typ String gecastet, was zu einem Fehler führt, da Object kein Subtyp von String ist. Gegeben ist folgende, leichte Änderung des obigen Programmfragments: LinkedList<String> ls = new LinkedList<String>(); ls.addlast("letztes Element"); ls.getlast().indexof("elem"); ls.addlast(new Object()); ls.getlast().indexof("elem"); (1 + 2 Punkte) Welche Art der Polymorphie findet hier Anwendung? An welcher Stelle im Programm tritt was für eine Art von Fehler auf? Es handelt sich um Parametrische Polymorphie. Es kommt in der vorletzten Zeile zu einem Compilerfehler, da Object kein Subtyp von String ist und ein Object somit nicht in die mit String parametrisierte LinkedList eingefügt werden kann. (1 + 2 Punkte) (Fortsetzung der Aufgabe auf folgender Seite) Seite 12 von 18

13 (Fortsetzung von Aufgabe 8) Geben Sie ein Beispiel (Code oder in Worten) für beschränkt-parametrische Polymorphie! public class DocumentPool<T extends Druckbar> { public void adddocument(t document){ /*... */ void printall() { /*... */ In obigem Beispiel ist DocumentPool eine Datenstruktur zur Sammlung von Dokumenten, dessen Typparameter T durch Angabe des expliziten Supertyps Druckbar beschränkt ist. Diese Einschränkung ermöglicht die Implementierung der Methode printall, für welche nun sichergestellt ist, dass alle Dokumente im DocumentPool druckbar sind. (3 Punkte) Welchen Begriff verwendet man oft anstatt von ad-hoc-polymorphie? Ad-hoc-Polymorphie ist eine andere Bezeichnung für das Überladen von Operatoren bzw. Methodennamen. (1 Punkt) Seite 13 von 18

14 Aufgabe 9: Objektorientierte Modellierung Der Typ Kreis mit einer Methode setzeradius und der Typ Quadrat mit der Methode setze- Kantenlaenge sollen beide Subtypen von GeometrischeFigur sein, welche die Methode druckefigur zur Verfügung stellen soll. Darüber hinaus soll Quadrat auch Subtyp des Typen EckigesDing sein, welcher die Methode eckenanzahl bereitstellt. Ebenso soll auch der Typ Bierkasten mit der Methode restmenge ein Subtyp von EckigesDing sein. Unter keinen Umständen soll aber ein Bierkasten eine GeometrischeFigur sein. Geben Sie eine mögliche Implementierung für obige Typen und Methoden an, so dass genau die geforderten Subtypbeziehungen erfüllt sind. Geben Sie auch alle nötigen Methodendeklarationen und - implementierungen mit an, wobei Sie die erforderlichen Methodenrümpfe nicht mit Implementierungen füllen müssen (ein { reicht). Ebenso brauchen Sie keine Attribute deklarieren. class GeometrischeFigur { public void druckefigur(){ /*...*/ class Kreis extends GeometrischeFigur{ public void setzeradius(int radius){ /*...*/ interface EckigesDing { public int eckenanzahl(); class Quadrat extends GeometrischeFigur implements EckigesDing{ public void setzekantenlaenge(int laenge) { /*...*/ public int eckenanzahl() { /*...*/ class Bierkasten implements EckigesDing { public int restmenge() { /*...*/ public int eckenanzahl() { /*...*/ Es sind natürlich auch Lösungen möglich, in welchen z.b. GeometrischeFigur als Interface vorliegt und EckigesDing als Superklasse implementiert wird. Seite 14 von 18

15 Aufgabe 10: Threads Gegeben ist der folgende Codeauschnitt: 01 public class Warum { 02 public static void main(string[] argv) { 03 Test t = new Test(); 04 t.start(); 05 t.dotry(); 06 t.stop(); class Test extends Thread { 11 public void run() { 12 while (true) { 13 System.out.println("Hallo, ich komme."); 14 try { 15 Thread.sleep(500); 16 catch (InterruptedException e) { 17 e.printstacktrace(); // Zum Beenden Enter-Taste druecken 23 void dotry() { 24 try { 25 System.in.read(); 26 catch (Exception e) { 27 e.printstacktrace(); System.out.println("Ich gehe. Auf Wiedersehen!"); (Fortsetzung der Aufgabe auf folgender Seite) Seite 15 von 18

16 (Fortsetzung von Aufgabe 10) Während der Programmausführung werden zwei Threads erstellt. Welches ist der zuerst erstellte Thread? Der erste Thread T1 ist derjenige, der den Code der main-methode ausführt. Wo wird der zweite Thread gestartet? Mit t.start(); in Zeile 4 wird der zweite Thread T2 gestartet. Wo wird der erste Thread zum ersten Mal gestoppt? Die read()-anweisung in Zeile 25 innerhalb der Methode dotry funktioniert wie ein Stopp- Signal: T1 wartet so lange, bis eine Zeile von der Konsole gelesen werden kann, also Return gedrückt wurde. Wo wird der zweite Thread gestoppt? Bei t.stop(); in Zeile 6. Wann wird der erste Thread beendet? Nach Beendigung der main-methode. Seite 16 von 18

17 Zusätzlicher Platz für Ihre Lösungen Ergänzung zu Aufgabe Nr. Ergänzung zu Aufgabe Nr. Seite 17 von 18

18 Zusätzlicher Platz für Ihre Lösungen Ergänzung zu Aufgabe Nr. Ergänzung zu Aufgabe Nr. Seite 18 von 18

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Klausurort: Aufgabe Summe n (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2011 Einführung in die objektorientierte Programmierung Klausur am 10.9.2011 Dauer: 3 Std., 10 13 Uhr Lesen

Mehr

Kurs Einführung in die objektorientierte Programmierung (Kursdurchführung des Sommersemester 2016) Klausur am

Kurs Einführung in die objektorientierte Programmierung (Kursdurchführung des Sommersemester 2016) Klausur am (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 01618 Einführung in die objektorientierte Programmierung (Kursdurchführung des Sommersemester 2016) Klausur am 10.09.2016

Mehr

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe

Lesen Sie zuerst die Hinweise auf der folgenden Seite! Musterlösung. Klausurort: Aufgabe Summe (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands) Kurs 1618 SS 2010 Einführung in die objektorientierte Programmierung Klausur am 11.9.2010 Dauer: 3 Std., 10 13 Uhr Lesen

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen

Mehr

Lesen Sie zuerst die Hinweise auf der Rückseite!

Lesen Sie zuerst die Hinweise auf der Rückseite! Fachbereich Informatik Lehrgebiet Programmiersysteme Prof. Dr. Friedrich Steimann FernUniversität in Hagen D-58084 Hagen (Name, Vorname) (Straße, Nr.) (PLZ) (Wohnort) (Land, falls außerhalb Deutschlands)

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

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

Allgemeine Informatik II SS :30-13:30 Uhr

Allgemeine Informatik II SS :30-13:30 Uhr TU Darmstadt FB Informatik Prof. J. Fürnkranz Vordiplomsklausur - Lösungsvorschlag Allgemeine Informatik II SS 2005 15.09.2005 11:30-13:30 Uhr Hinweise: Als Hilfsmittel ist nur ein schwarzer oder blauer

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

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

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

Java I Vorlesung Vererbung und Sichtbarkeit

Java I Vorlesung Vererbung und Sichtbarkeit Java I Vorlesung 4 Vererbung und Sichtbarkeit 17.5.2004 Vererbung Überladen, Überschreiben, Verstecken, Verschatten Zugriffskontrolle Statische Members Wiederholung: OOP Programme bestehen aus Klassen.

Mehr

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Grundzüge der Programmierung. Wiederverwendung VERERBUNG Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse

Mehr

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

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

Programmieren I. Kapitel 8. Vererbung

Programmieren I. Kapitel 8. Vererbung Programmieren I Kapitel 8. Vererbung Kapitel 8: Vererbung Ziel: Wesentliches objektorientiertes Konzept kennenlernen Subtypen Idee Probleme und Varianten Vererbung in Java dynamische Bindung abstrakte

Mehr

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

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

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen 7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen

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

Programmieren in Java

Programmieren in Java Programmieren in Java Einführung in die objektorientierte Programmierung Teil 2 2 Übersicht der heutigen Inhalte Vererbung Abstrakte Klassen Erweitern von Klassen Überladen von Methoden Überschreiben von

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

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

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der

Beispiel: Zwischen der Oberklasse und der abgeleiteten Klasse besteht eine ist ein Beziehung. Eine abgeleitete Klasse stellt eine Spezialisierung der Vererbung Vererbung ist ein Konzept der objektorientierten Programmierung,, die es ermöglicht neue Klassen von bereits vorhandenen Klassen abzuleiten. In einer abgeleiteten Klasse (subclass) muss nur spezifiziert

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

Einstieg in die Informatik mit Java

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

Mehr

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

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

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

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

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

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

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

Java Vererbung. Inhalt

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

Mehr

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

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

AuD-Tafelübung T-B5b

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

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Programmieren in Java

Programmieren in Java 17. Übung 1. Aufgabe Schreibe ein Programm, das eine Textdatei (z.b. *.java ) aus dem aktuellen Verzeichnis über eine TextArea auf ein Fenster des Bildschirms abbildet. Jede Zeile soll dabei durchnummeriert

Mehr

Java für Computerlinguisten

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

Mehr

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

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

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

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

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

2.2 Prozesse in Java

2.2 Prozesse in Java 2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.

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

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes

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

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

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

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009

Klausur zum Kurs Betriebssysteme (1802) am 19. September 2009 Fakultät für Mathematik und Informatik Lehrgebiet Kooperative Systeme Prof. Dr. Jörg M. Haake FernUniversität in Hagen 58084 Hagen Vorname Name Straße Hausnr. Informatikzentrum Universitätsstr. 1 58084

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

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

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

Mehr

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

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

Mehr

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

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

Mehr

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

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

Objektorientierung II

Objektorientierung II 9Lehrstuhl für Bioinformatik Einführung in die Programmierung für Bioinformatiker Prof. B. Rost, Dr. L. Richter Blatt 09 19.12.2016 Objektorientierung II Aufgabe 9.1. Modellierung - Geometrische Figuren

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität

Mehr

Überschreiben von Methoden

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

Mehr

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

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

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 03: Wiederholung und Nutzereingaben Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Wiederholung Klassen, Objekte, Attribute und Methoden

Mehr

Javakurs für Anfänger

Javakurs für Anfänger Javakurs für Anfänger Einheit 14: Generics Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Generische Klassen (Generics) Motivation Java Typ-Prüfung Warum also Generics? Generische

Mehr

Einführung in die Programmierung 1

Einführung in die Programmierung 1 Einführung in die Programmierung 1 Einführung (S.2) Einrichten von Eclipse (S.4) Mein Erstes Programm (S.5) Hallo Welt!? Programm Der Mensch (S.11) Klassen (S.12) Einführung Wie Funktioniert Code? Geschriebener

Mehr

Grundlagen der Objektorientierung

Grundlagen der Objektorientierung Grundlagen der Objektorientierung Klassen, Attribute, Methoden Kapselung und Konstruktoren Vererbung Packages Interfaces und Adapterklassen 04.06.2008 Marcel Wieczorek 14 Klassen, Attribute, Methoden package

Mehr

JAVA - Methoden

JAVA - Methoden Übungen Informatik I JAVA - http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 Folie 1 sind eine Zusammenfassung von Deklarationen und Anweisungen haben einen Namen und können

Mehr

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach...

Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung und Software-Entwicklung. Nachname... Vorname... Matrikelnummer... Studienfach... Ludwig-Maximilians-Universität München WS 2012/13 Institut für Informatik 19.04.2013, 12:00 14:00 Uhr Prof. Dr. R. Hennicker, A. Klarl Nachholklausur (6 ECTS) Einführung in die Informatik: Programmierung

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

5. Threads, Serverprozesse und Benachrichtigungen

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

Mehr

Methoden (fortgeschritten) in C# - 1

Methoden (fortgeschritten) in C# - 1 Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich

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

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

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme

Vorname: Nachname: Matrikelnummer: Klausur. Betriebssysteme Vorname: Nachname: Matrikelnummer: Klausur Betriebssysteme 12.02.2013 Hinweise: 1. Beschriften Sie als erstes diese Seite mit Ihrem Namen, Vornamen und Ihrer Matrikelnummer (deutlich in Druckbuchstaben).

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

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

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected

Aufgabe 1: Quer durch Java (4 Punkte) super abstract abstract protected Universität Augsburg, Institut für Informatik Sommersemester 2006 Prof. Dr. Werner Kießling 14. Oktober 2006 Markus Endres, Alfons Huhn, Timotheus Preisinger Informatik II Klausur 2 Hinweise: Die Bearbeitungszeit

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

Java I Vorlesung 6 Referenz-Datentypen

Java I Vorlesung 6 Referenz-Datentypen Java I Vorlesung 6 Referenz-Datentypen 7.6.2004 Referenzen this, super und null Typkonvertierung von Referenztypen Finale Methoden und Klassen Datentypen in Java In Java gibt es zwei Arten von Datentypen:

Mehr

Institut fu r Informatik

Institut fu r Informatik Technische Universita t Mu nchen Institut fu r Informatik Lehrstuhl fu r Bioinformatik Einfu hrung in die Programmierung fu r Bioinformatiker Prof. B. Rost, L. Richter Java, Objektorientierung 5.1 (U )

Mehr

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

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

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

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

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6

Hochschule Augsburg, Fakultät für Informatik Name:... Prüfung Programmieren 1, IN1bac, WS 10/11 Seite 1 von 6 Prüfung "Programmieren 1", IN1bac, WS 10/11 Seite 1 von 6 Datum, Uhrzeit: 24. 01. 2011, 10.30 Uhr Semester: IN1 Note:... Prüfer: Prof. Meixner Dauer: 60 Min. Hilfsmittel: keine Punkte:... Diese Prüfung

Mehr

Algorithmen und Programmierung II

Algorithmen und Programmierung II Algorithmen und Programmierung II Vererbung Prof. Dr. Margarita Esponda SS 2012 1 Imperative Grundbestandteile Parameterübergabe String-Klasse Array-Klasse Konzepte objektorientierter Programmierung Vererbung

Mehr

Java Einführung Methoden. Kapitel 6

Java Einführung Methoden. Kapitel 6 Java Einführung Methoden Kapitel 6 Inhalt Deklaration und Aufruf von Methoden Lokale und globale Namen (Bezeichner) Sichtbarkeit und Lebensdauer von Variablen in Methoden Überladen von Methoden 2 Methoden

Mehr

JAVA - Methoden - Rekursion

JAVA - Methoden - Rekursion Übungen Informatik I JAVA - Methoden - Rekursion http://www.fbi-lkt.fh-karlsruhe.de/lab/info01/tutorial Übungen Informatik 1 1 Methoden Methoden sind eine Zusammenfassung von Deklarationen und Anweisungen

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

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen

Thread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von

Mehr

Programmierkurs. Manfred Jackel

Programmierkurs. Manfred Jackel Java für Anfänger Teil 7: Methoden Programmierkurs 06.-10.10.2008 Manfred Jackel 1 Methoden In der imperativen Programmierung sind Funktionen ein wichtiges Mittel zur Modularisierung. [Oft benötigter]

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

JAVA 5 Generics. Proseminar Programmiersprachen Thema Java 5 Generics 1

JAVA 5 Generics. Proseminar Programmiersprachen Thema Java 5 Generics 1 JAVA 5 Generics Thema Java 5 Generics 1 Inhalt 1. Die Programmiersprache Java 2. Simple Generics 3. Das Beispielprogramm 4. Tieferer Einstieg in Generics 5. Arrays 6. Kritische Betrachtung von Generics

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

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

Programmieren I + II Regeln der Code-Formatierung

Programmieren I + II Regeln der Code-Formatierung Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden

Mehr

Informatik II Übung 6 Gruppe 7

Informatik II Übung 6 Gruppe 7 Informatik II Übung 6 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch DEBRIEFING Übung 5 2 U5A1-4 Im Prinzip alles richtig. Falls am Ende noch Zeit, dann Einsicht in die Best Of s 3 THEORIE Java Vererbung,

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr