Grundlagen der Programmierung (Pseudocode nachverfolgen)
Die Klasse Counter gibt jeder Instanz eine eigene ganzzahlige Membervariable count (beim Erzeugen 0), und ihre Methode inc() addiert 1 zum eigenen count. Eine Variable vom Typ Counter enthält eine Referenz auf eine Instanz, nicht die Instanz selbst. Welchen Wert hat x, nachdem das folgende Programm ausgeführt wurde?
Counter: c1 ← new Counter()
Counter: c2 ← c1
c1.inc()
c2.inc()
c2 ← new Counter()
c2.inc()
integer: x ← c1.count × 10 + c2.count
- A11
- B21
- C33
Antwort und Erläuterung anzeigen
Antwort: B. 21
c2 ← c1 kopiert nur die Referenz, daher verweisen c1 und c2 auf dieselbe Instanz. c1.inc() und c2.inc() erhöhen deshalb dasselbe count, und c1.count wird 2. Das folgende c2 ← new Counter() lässt c2 auf eine neue Instanz verweisen, und das anschließende c2.inc() setzt nur das neue count auf 1. x = 2 × 10 + 1 = 21.
Weiter: 9 weitere Fragen zu Grundlagen der Programmierung (Pseudocode nachverfolgen)