Hallo Leute,
ich habe in eine der Musterklausuren (siehe angehängtes Bild) folgende Lösung als Musterlösung bekommen.
Es sind 4 Klassen:
So es muss nichts(!) gelöst werden. Die Lösung steht da. Allerdings kann ich nicht nachvollziehen was gemacht wurde. Was ich nachvollziehen will kann man in den Kommentaren lesen.
Da ich meine Klausur in zwei Wochen schreibe wäre ich euch sehr dankbar, wenn mir das einer erklären könnte.
Mir ist nur nicht klar wie die Objekte und Interfaces miteinander kommunizieren
Ich weiß jede hilfreiche Antwort zu schätzen.
Vielen Dank

ich habe in eine der Musterklausuren (siehe angehängtes Bild) folgende Lösung als Musterlösung bekommen.
Es sind 4 Klassen:
Java:
public class Counter {
/*Was genau passiert hier und was bewirkt es?*/
private Observer observer;
//Ist mir klar
private int value = 0;
//Ist mir klar
public void increment() {
//Ist mir klar
this.value++;
/*Was genau passiert hier im if-Block und was bewirkt es?*/
if ( this.observer != null ) {
this.observer.newValue(this);
}
}
/*Warum übergibt man die Parameter so?*/
public void setObserver(Observer observer) {
this.observer = observer;
}
public int get() { return this.value; }
}
Java:
public interface Observer {
/* Was passiert wenn man eine Klasse als Parameter übergibt?
* Warum macht man das?
*/
public void newValue(Counter counter);
}
Java:
public class ObserverImpl implements Observer {
public void newValue(Counter counter) {
/* Was passiert bei counter.get() ?
*
*/
System.out.println("Neuer Zaehlerstand: " + counter.get());
}
}
Java:
public class Main {
public static void count(Counter c) {
for (int i=0 ; i<5; i++) {
/*Was genau passiert hier und was bewirkt es?*/
c.increment();
}
}
public static void main(String[] args) {
//Ist mir klar
Counter c = new Counter();
/* Was genau passiert hier und was bewirkt es?
* Vor allem mit new im Parameter? Warum?
*/
c.setObserver(new ObserverImpl());
count(c);
}
}
So es muss nichts(!) gelöst werden. Die Lösung steht da. Allerdings kann ich nicht nachvollziehen was gemacht wurde. Was ich nachvollziehen will kann man in den Kommentaren lesen.
Da ich meine Klausur in zwei Wochen schreibe wäre ich euch sehr dankbar, wenn mir das einer erklären könnte.
Mir ist nur nicht klar wie die Objekte und Interfaces miteinander kommunizieren
Ich weiß jede hilfreiche Antwort zu schätzen.
Vielen Dank
