sellquiz
Version:
An open source domain-specific language for online assessment
181 lines (127 loc) • 2.68 kB
Plain Text
%course Praktische Informatik 1
%quiz Klassen und Objekte
Attribute
Gegeben sei die folgende Klasse:
```class A {
private int x;
public int y;
public void f1(int x) {
this.x += x;
}
public void f2(int y) {
this.y += y;
}
}```
Angenommen, ein Objekt wurde per `A a = new A();` erzeugt:
Welchen Wert hat Attribut `x`?
$
Welche der folgenden Anweisungen sind erlaubt?
[ ] `a.x = 3;`
[] `a.y = 4;`
[] `a.f1(5);`
[] `a.f2(6);`
%%%
Objektvariablen
Gegeben seien die folgenden Klassen:
```class A {
private int x;
void setX(int x) {
this.x = x;
}
int getX() {
return this.x;
}
}
class Main {
public static void main(String[] args) {
A a = new A();
A b = a;
b.setX(42);
System.out.println( a.getX() );
}
}
```
Was wird ausgegeben?
(x) 42
( ) 0
%%%
Objektvariablen
Gegeben seien die folgenden Klassen:
```class A {
public int x;
public A(int x) {
this.x = x;
}
}
class Main {
public static void main(String[] args) {
A a1 = new A(4);
A a2 = new A(4);
System.out.println( a1 == a2 );
}
}```
Was wird ausgegeben?
(x) `false`
( ) `true`
%%%
Objektvariablen
Gegeben seien die folgenden Klassen:
```class Punkt {
public int x, y;
}
class Main {
public static void main(String[] args) {
Punkt[] punkte = new Punkt[5];
punkte[0].x = 3;
punkte[0].y = 7;
}
}```
Wieso erhält man einen __Compilerfehler__?
(x) Für jedes Element des Arrays muss ein Objekt erzeugt werden, z.B. `punkte[0] = new Punkt();`
( ) Es ist verboten ein Array vom Typ `Punkt` anzulegen.
( ) Auf die Attribute `x` und `y` darf nur innerhalb der Methoden der Klasse `Punkt` zugegriffen werden.
%%%
Konstrukturen
Gegeben sei die folgende Klasse:
```class A {
private int x;
public A() {
x = 7;
}
public A(int x) {
this();
this.x += x;
}
}```
Nach Ausführung von `A a = new A(6);` hat das Attribut `x` den Wert $
%%%
Konstruktoren
Gegeben sei die folgende Klasse:
```class A {
public A(String x) {
System.out.println("hallo");
}
public A(int x) {
System.out.println("welt");
}
}```
Durch Ausführung von `A a = new A("13");` wird
%%%
Zugriffsschutz
Gegeben sei die folgende Klasse:
```class C {
int a;
public int b, c;
private int d;
public void f1() { ... }
private void f2() { ... }
void f3() { ... }
}```
Auf welche Attribute / Methoden kann von außen zugegriffen werden?
[] `a`
[] `b`
[] `c`
[ ] `d`
[] `f1`
[ ] `f2`
[] `f3`