OPP II Klausuraufgaben - Schnittstellen

Ähnliche Dokumente
Java Einführung Abstrakte Klassen und Interfaces

Theorie zu Übung 8 Implementierung in Java

3 Objektorientierte Konzepte in Java

3 Objektorientierte Konzepte in Java

Objektorientierte Programmierung. Kapitel 12: Interfaces

7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen

Prinzipien Objektorientierter Programmierung

Präsentation Interfaces

Innere Klassen in Java

Java - Programmierung - Objektorientierte Programmierung 1

Probeklausur: Programmierung WS04/05

Programmieren in Java

Grundzüge der Programmierung. Wiederverwendung VERERBUNG

Java Einführung Klassendefinitionen

JAVA für Nichtinformatiker - Probeklausur -

Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung

Vererbung & Schnittstellen in C#

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

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Interfaces

Probeklausur: Programmierung WS04/05

Kapitel 6. Vererbung

Musterlösungen zur Klausur Informatik 3

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Java für Computerlinguisten

5.5.8 Öffentliche und private Eigenschaften

Programmierkurs C++ Abstrakte Klassen und Methoden

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

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

Algorithmen und Datenstrukturen

Java I Vorlesung 6 Referenz-Datentypen

Einstieg in die Informatik mit Java

Interfaces und Vererbung

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

Kapitel 6. Vererbung

OOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik

Prüfungszeuch im Fach Objektorientierte Programmierung WS 2000

Tutorium 5 - Programmieren

Teil 1: Grundeigenschaften von Rechnern und Software

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

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

Kapitel 6. Vererbung

1 Polymorphie (Vielgestaltigkeit)

Gebundene Typparameter

Tutorium zur Vorlesung Programmieren

Objektorientierte Programmierung

1.2 Attribute und Methoden Aufbau einer Java-Klasse:

Objektorientierte Programmierung

Einstieg in die Informatik mit Java

Informatik II Übung 6 Gruppe 7

Große Übung Praktische Informatik 1

5.6 Vererbung. Vererbung

Wiederholung zur Vorlesung Programmieren

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Faustregeln zu Zusicherungen

public class SternchenRechteckGefuellt {

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

Java-Schulung Grundlagen

Klassenbeziehungen & Vererbung

JAVA - Methoden

Abschnitt 9: Schnittstellen: Interfaces

Java Einführung Methoden in Klassen

Programmieren I. Kapitel 8. Vererbung

Teilprüfung Software- und Internettechnologie Programmierkurs 1 Wintersemester 2005/2006

Einfache Rechenstrukturen und Kontrollfluss II

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

Algorithmen und Datenstrukturen 07

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

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

Einführung in die Java- Programmierung

Kapitel 8. Programmierkurs. Methoden. 8.1 Methoden

Klassen in Java. Klassen

Typumwandlungen bei Referenztypen

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Operationalisierbare Qualitätskriterien für die Programmierung mit Erfahrungen aus PRÜ1 und PRÜ2

Java Einführung Methoden. Kapitel 6

Anleitung. Ein einfaches RMI-Beispiel. (ab Java 5.0) c Y. Pfeifer. (Juni 2014)

Ein erstes Java-Programm

Datenbankanwendungsprogrammierung Crashkurs Java

Übungsaufgaben Java. Vorlesung Cloud Computing SoSe Cloud Computing SoSe 2009 Dr. M.Kunze 1

5. Abstrakte Klassen

Javakurs für Anfänger

Softwaretechnologie - Wintersemester 2012/ Dr. Günter Kniesel

Objekt-Orientierte Programmierung

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

Java-Programmierung. Remote Method Invocation - RMI

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

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

Enumerations und innere Klassen

Programmentwicklung I für Hörer anderer Fachrichtungen -Wintersemester 2003/04- Abschlussklausur

Factory Method (Virtual Constructor)

AuD-Tafelübung T-B5b

Remote Method Invocation

3. Anweisungen und Kontrollstrukturen

Abend 7 Vererbung und Polymorphie, Abstrakte Klassen

Höhere Programmierkonzepte Testklausur

Javakurs für Anfänger

II.4.1 Unterklassen und Vererbung - 1 -

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

Java Reflection. Meta-Programmierung mit der java.lang.reflection API. Prof. Dr. Nikolaus Wulff

Transkript:

OPP II Klausuraufgaben - Schnittstellen (I.) Versuchen Sie alle Aufgaben wie in der Klausur am Schreibtisch zu lösen! Halten Sie es aus, nicht sofort die Lösung zu erkennen! Diese Aufgaben(und speziell Kodieren hat damit zu tun, Zeit in eine Lösung/Fehlersuche zu investieren) (II.) Überprüfen Sie ihre Lösung! Unabhängig davon können Sie den Quellcode kopieren und zeilenweise ausführen! Beobachten Sie die Werte der Variablen! (III.) Lesen Sie sich meine Lösungen durch und versuchen Sie die Erklärungen 100% zu verstehen! (IV) Ich habe diese Aufgaben und Lösungen nach besten Wissen und Zeit neu zusammengestellt, bedenken Sie, dass geg. Fehler in den Lösungen jeglicher Art auftreten können! Ich habe allerdings den Vorteil für Sie höher eingeschätzt, ihnen meine Lösungen mit zu kopieren! Viele Erfolg und Spaß beim Lösen! (1.) Welchen beiden Fehler sind in untenstehendem Kode? interface A private int i; (2.) Wie lautet die Ausgabe von folgendem Programm: interface A void mymethod(); class B public void mymethod() System.out.println("My Method"); class C extends B implements A class MainClass A a = new C(); a.mymethod(); (3.) Kann eine Klasse mehr als eine Schnittstelle implementieren? OPP II Klausuraufgaben - Schnittstellen S. 1/13

(4.) Warum erzeugt nachstehender Kode einen Compilerfehler? interface X void methodx(); class Y implements X void methodx() System.out.println("Method X"); (5.)Welcher Fehler taucht bei nachfolgendem Quellcode auf: interface A int i = 111; class B implements A void methodb() i = 222; (6.) Stimmt der folgende Quellkode? class A //Class A interface B extends A //Interface B extending Class A OPP II Klausuraufgaben - Schnittstellen S. 2/13

(7.) Wie ist die Programmausgabe? interface P String p = "PPPP"; String methodp(); interface Q extends P String q = "QQQQ"; String methodq(); class R implements P, Q public String methodp() return q+p; public String methodq() return p+q; R r = new R(); System.out.println(r.methodP()); System.out.println(r.methodQ()); (8.) Können Schnittstellen Konstruktoren haben? OPP II Klausuraufgaben - Schnittstellen S. 3/13

(9.) Wie ist die Programmausgabe? class A implements B public int methodb(int i) return i =+ i * i; interface B int methodb(int i); B b = new A(); System.out.println(b.methodB(2)); (10.) Warum kompliert dieser Quellkode nicht? interface ABC public void methodone(); public void methodtwo(); interface PQR extends ABC public void methodone(); public void methodtwo(); (11.)Kann ein Interface statische Methoden haben? OPP II Klausuraufgaben - Schnittstellen S. 4/13

(12.) Wie ist die Programmausgabe? interface ABC void methodone(); interface PQR extends ABC void methodtwo(); abstract class XYZ implements PQR public void methodone() methodtwo(); class MNO extends XYZ public void methodtwo() methodone(); ABC abc = new MNO(); abc.methodone(); OPP II Klausuraufgaben - Schnittstellen S. 5/13

(13.) Wie ist die Programausgabe? interface X char c = 'A'; char methodx(); class Y implements X System.out.println(c); public char methodx() char c = this.c; return ++c; Y y = new Y(); System.out.println(y.methodX()); System.out.println(y.c); System.out.println(X.c); (14.) Kann man Schnittstellen als abstrakt deklarieren? OPP II Klausuraufgaben - Schnittstellen S. 6/13

(15.) Wie ist die Programmausgabe? interface One String s = "Mr. Big"; String methodone(); interface Two String methodone(); abstract class Three String s = "Coded by "; public abstract String methodone(); class Four extends Three implements One, Two public String methodone() String s = super.s + One.s; return s; Four four = new Four(); System.out.println(four.methodONE()); One one = four; System.out.println(One.s+" say goodbye!"); OPP II Klausuraufgaben - Schnittstellen S. 7/13

(16.) Wie ist die Programmausgabe? interface X void method(); class Y public void method() System.out.println("CLASS Y"); class Z extends Y implements X X x = new Z(); x.method(); (17.) Können Schnittstellen andere Methoden als abstrakte haben? OPP II Klausuraufgaben - Schnittstellen S. 8/13

(18.)Wie lautet die Programausgabe? interface A int methoda(); interface B int methodb(); interface C int methodc(); class D implements A, B, C int i = 7; public int methoda() i =+ i / i; return i; public int methodb() i =- i * i; return i; public int methodc() i = ++i - --i; return i; D d = new D(); System.out.println(d.i); System.out.println(d.methodA()); System.out.println(d.methodB()); System.out.println(d.methodC()); (19.) Alle Deklarationen einer Schnittstelle sind per Voreinstellung public! Stimmt dies? OPP II Klausuraufgaben - Schnittstellen S. 9/13

(20.) Bestimmen Sie die Programausgabe: interface A String A = "A"; String methoda(); interface B String B = "B"; String methodb(); class C implements A, B public String methoda() return A+B; public String methodb() return B+A; class D extends C implements A, B String D = "D"; public String methoda() return D+methodB(); C c = new C(); System.out.println(c.methodA()); System.out.println(c.methodB()); c = new D(); System.out.println(c.methodA()); System.out.println(c.methodB()); OPP II Klausuraufgaben - Schnittstellen S. 10/13

(21.) Bestimmen Sie die Programmausgabe! interface X void methodx(); interface Y void methody(); class Z implements X, X.Y methodx(); System.out.println(1); public void methodx() methody(); System.out.println(2); public void methody() System.out.println(3); Z z = new Z(); z.methodx(); z.methody(); X x = z; x.methodx(); OPP II Klausuraufgaben - Schnittstellen S. 11/13

(22.) Welche Compilerfehler liegen hier vor? interface X void methodx(); interface Y extends X void methody(); class Z implements Y public void methody() System.out.println("Method Y"); OPP II Klausuraufgaben - Schnittstellen S. 12/13

(23.)Bestimmen Sie die Ausgabe! class A class B extends A class C extends B interface ABC void method(a a); interface PQR void method(b b); class M implements ABC, PQR public void method(a a) System.out.println(2); public void method(b b) System.out.println(3); M m = new M(); m.method(new A()); m.method(new B()); m.method(new C()); OPP II Klausuraufgaben - Schnittstellen S. 13/13

OPP II Klausuraufgaben - Schnittstellen - Lösungswege (1.) Eine Konstante darf nicht als privat deklariert werde und muss initialisiert werden! (2.) My Method (3.) Ja, das ist im Gegensatz zur Vererbung bei Java möglich! (4.) Die Methode muss als public deklariert werden! (5.) Die Konstante i kann in der implementierten Klasse nicht verändert werden! Deklarationen von Variablen im Interface sind per Voreinstellung final und static! (6.) Eine Klasse kann nicht implementiert werden! (7.) QQQQPPPP PPPPQQQQ (8.) Nein (9.) 4 (10.) Ja, da ein Interface nicht ein Interface implementieren muss! (11.) Ab Java 8 ist dies möglich! (12.) Dies Programm hat kein Ende weil sich die Methoden methodone und methodtwo gegenseitig unendlich oft aufrufen! Schließlich kommt es zu einem StackOverflow! (13.) ABAA Das erste A durch die println Anweisung in der Klasse Y! (14.) Ja, aber Schnittstellen sind bereits als abstrakt per Voreinstellung deklariert! (15.) Coded by Mr. Big Mr. Big say goodbye! (16.) Class Y (17.) Ab Java8 gibt es statische und default Methoden! (18.) 7 1-1 1 (19.) Ja! OPP II Klausuraufgaben - Schnittstellen - Lösungswege S. 1/2

(20) AB BA DBA BA (21.) 3 2 1 3 2 3 3 2 (22.) Die Klasse Z muss auch die Methode methodx() implementieren! (23.) 2 3 3 OPP II Klausuraufgaben - Schnittstellen - Lösungswege S. 2/2