FHNW - OOP1 - Quizfragen
Fragen zum Quiz
Fragen zum Quiz
Kartei Details
Karten | 92 |
---|---|
Lernende | 17 |
Sprache | Deutsch |
Kategorie | Technik |
Stufe | Universität |
Erstellt / Aktualisiert | 15.12.2018 / 06.12.2020 |
Weblink |
https://card2brain.ch/box/20181215_fhnw_oop1_quizfragen
|
Einbinden |
<iframe src="https://card2brain.ch/box/20181215_fhnw_oop1_quizfragen/embed" width="780" height="150" scrolling="no" frameborder="0"></iframe>
|
Was ist die Ausgabe bei folgendem Programm?
class D {
int i;
D() {
System.out.println("D:" + i);
i = 5;
}}
class E extends D {
E() {
System.out.println("E:" + i);
i = 6;
}
public static void main(String[] args) {
System.out.println(new E().i);
}}
Was ist die Ausgabe bei folgendem Programm?
class F {
String s = "F";
String m() {
return s;
}}
class G extends F {
String m() {
return super.m() + "G";
}
String n() {
return super.m() + "X";
}
public static void main(String[] args) {
System.out.println(new G().n());
}}
Welche Zuweisungen akzeptiert der Compiler?
class Article {}
class Book extends Article {}
class HardCover extends Book {}
class CD extends Article {}
Article a;
Book b;
HardCover h;
Cd c;
Welche Aussagen stimmen sind korrekt?
class Article {}
class Book extends Article {}
class HardCover extends Book {}
class CD extends Article {}
Article a = new Book();
Book b = new HardCover();
HardCover h = null;
Cd c = new CD();
class A {}
class B extends A {}
class C extends B {}
A ab = new B();
System.out.println(ab instanceof A)
System.out.println(ab instanceof B)
Was ist die Ausgabe von folgendem Programm?
class D {
void m() {
System.out.println("D.m()");
}}
class E extends D {
void m(int i) {
System.out.println("E.m()");
}}
D d = new E();
d.m(2);
Was ist die Ausgabe von folgendem Programm?
class F {
void m() {
System.out.println("F.m()");
}}
class G extends F {
@Override
void m(int i) {
System.out.println("G.m()");
}}
G g = new G();
g.m(2);
Was ist die Ausgabe von folgendem Programm?
class H {
void m() {
System.out.println("H.m()");
}}
class I extends H {}
class J extends I {
@Override
void m() {
System.out.println("J.m()");
super.m();
}}
I i = new J();
i.m();
Was ist die Ausgabe bei folgendem Programm?
class K {
int i = 3;
K() {
i = 2;
}}
class L extends K {
L() {
System.out.println(i);
}}
new L();
class M {
private int i;
M(int i) {
this.i = i;
}
@Override
public boolean equals(Object that) {
return (that instanceof M) && ((M)that).i == this.i;
}}
Object o = new M(3);
System.out.println(o.equals(new M(3)));
Der dynamische Typ kann zur Laufzeit verändert werden (mit Casts).
class N {
void m(Object o) { System.out.println("N"); }
}
class O extends N {
void m(N n) { System.out.println("O"); }
}
class P extends O {
void m(String s) { System.out.println("P"); }
}
N n = new P();
n.m("Party");
class N {
void m(Object o) { System.out.println("N"); }
}
class O extends N {
void m(Object n) { System.out.println("O"); }
}
class P extends O {
void m(String s) { System.out.println("P"); }
}
N n = new P();
n.m("Party");
Welche Aussagen treffen zu?
myPackA und myPackB sind zwei Java Pakete, welche sie definiert haben. In
beiden Paketen gibt es eine public Klasse C mit einem public Default-Konstruktor.
Sie schreiben den folgenden Code:
package myPack;
import myPackA.C;
import myPackB.C;
public class Client {
public static void main(String[] args) {
C c = new C();
}}
Gegeben sei folgender Code in den entsprechenden Paketen:
package a;
class C {
public C() {
System.out.println("C");
}}
package b;
import a.*;
public class Client {
public static void main(String[] args) {
C c = new C();
}}
Welche Aussagen treffen zu?
// Datei A.java
package mypackage;
public class A {
public A() {
B.create();
}}
class B {
private B() {
System.out.println("B");
}
static B create() {
return new B();
}}
// Datei Client.java
package myPack;
import mypackage.*;
public class Client {
public static void main(String[] args) {
A a = new A();
}}
// Datei C.java
package mypackage;
public class C {
C() {
System.out.println("C()");
}
public C(int i) {
System.out.println("C(i)");
}}
// Datei Client.java
package myPack;
import mypackage.C;
public class Client {
public static void main(String[] args) {
C c1 = new C();
C c2 = new C(42);
}}
Folgende Aussage gilt für Java: Im Dateisystem eines Computers werden Klassen
auf Dateien abgebildet und Pakete auf Verzeichnisse.
Jeder der folgenden Java Klassen ist in einer eigenen Datei definiert. Welche
Aussagen treffen zu?
package mypackage;
public class A {
public int compute(int e) {
return new B().compute(new C().compute(e));
}}
package mypackage;
class B {
int compute(int e) {
return e + 1;
}}
package mypackage;
class C {
public int compute(int e) {
return e + 2;
}}
package myPack;
import mypackage.*;
public class Client {
public static void main(String[] args) {
A a = new A();
System.out.println(a.compute(0));
}}
Jeder der folgenden Java Klassen ist in einer eigenen Datei definiert. Welche
Aussagen treffen zu?
package mypackageA;
public class A {
protected int compute(int e) {
return e + 1;
}}
package mypackageB;
import mypackageA.A;
public class B extends A {
public int use() {
return this.compute(42);
}}
package mypackageB;
import mypackageA.A;
public class C {
private A a = new A();
public int use() {
return a.compute(42);
}}
Welche der Aussagen trifft auf den folgenden Code zu?
package mypackageA;
public class A {
private String message;
@Override
public boolean equals(Object that) {
if (this == that) {
return true;
}
if (!(that instanceof A)) {
return false;
}
A a = (A)that;
return this.message.equals(a.message);
}}
Gegeben sei nebenstehendes UML Diagramm.
Wir instanzieren ein Rechteck:
Rectangle r = new Rectangle(0, 0, 50, 30);
Welche der folgenden Code-Stücke kompilieren und laufen ohne Fehler? Die
Variable r zeigt auf unser oben erzeugtes Rechteck.
Rectangle implements interface Figure and Drawable
Figure
getX()
getY()
move(int dx, int dy)
Drawable
draw()
Erweitert man ein Interface, so nennt sich das Subclassing. Erweitert man eine
abstrakte Klasse, so ist das Subtyping.
Welche Aussagen sind korrekt?
Welche Aussagen sind korrekt?
Gegen sei nebenstehendes UML Diagramm. Die abstrakte Klasse Figure enthält
nur noch die Methoden getArea und getCircumference enthält. Alle anderen
Subklassen sind konkret.
Zusätzlich sind folgende Interfaces definiert:
public interface Drawable {
public void draw();
}
public interface Moveable {
void move(int dx, int dy);
}
public interface Polygon {
int getNumberOfSegments();
boolean isConvex();
Line[] getSegments();
}
Sei:
Rectangle r = null;
r = …;
Welche der folgenden instanceof Checks werden vom Compiler fehlerfrei übersetzt?
Bemerkungen:
a) Es könnten auch noch weitere Klassen definiert worden sein.
b) Es werden nicht alle Anweisungen fehlerfrei übersetzt!
Alle klassen erben von Figure(abstract)
Textbox erbt von Rectangle
Welche Aussagen treffen zu?
class Buffer extends StorageObject implements Writer, Comparable, Serializable {
....
}
Welche Aussagen treffen zu?
Interfaces dienen dazu, Klassen, die in keiner Vererbungsbeziehung zueinander
stehen, gleich zu behandeln
Welche Zuordnung der Visibility Marker ist korrekt?
Im Default-Fall ist eine Multivalued Multiplizität eine Menge. Sie hat also keine
Reihenfolge definiert. Wenn die Reihenfolge wichtig ist, muss {ordered} als
Property-String angegeben werden
Object o = 3;
Dieses Statement kompiliert.
Welche Aussagen zum Thema Wrapper Klassen sind korrekt?
Gegeben sind folgende Ausdrücke:
Integer m = Integer.valueOf(3);
Integer n = Integer.valueOf(3);
Integer s = Integer.valueOf(2048);
Integer t = Integer.valueOf(2048);
Welche Ausdrücke evaluieren auf true?
Wir betrachten den folgenden Code:
int n = (Integer) null;
Welche Aussagen sind korrekt?
Seien x, y und z Referenzen. Alle sind ungleich null.
Welcher der folgenden Ausdrücke prüft die Reflexivität der equals Methode?
Gegeben sei folgender Code:
enum Color {RED, BLUE, GREEN}
Color c = Color.BLUE;
Welche Ausdrücke evaluieren auf true?
Gegeben sei folgender Code:
enum Color {RED, BLUE, GREEN}
Welche der folgenden Ausdrücke evaluieren auf true?
Bei Aufzählungstypen ist der Konstruktor privat.