# Wie Objekte anderer Klassen ansprechen?



## zap (24. Feb 2015)

Okay, das wirkt jetzt wie die totale Anfängerfrage: Aber wie spreche ich instanzierte Objekte anderer Klassen an?

Ich habe beispielsweise einen Text-Log. Verschiedene Klassen sollen dem nun Text hinzufügen können. Dazu muss ich ja zuvor ein Objekt instanzieren. Möchte ich jetzt aber von einer anderen Klasse aus dem Log Texte hinzufügen, müsste ich diesen ja irgendwie addressieren, wie:


```
TestKlasse.log.testmethode();
```
(wenn in der Klasse TestKlasse zuvor ein Objekt log der Klasse Log erzeugt wurde).

Das funktioniert natürlich nicht, weil log nicht statisch ist. Wie sonst kann man solche Objekte adressieren? Ich habe das bisher immer umgangen, indem ich statische Listen angelegt habe und dort diese Objekte eingefügt habe. Das ist aber nicht nur sehr umständlich, sondern auch unnötig, wenn die Liste z.b. nur ein Objekt enthält.

Ich bin mir sicher, da gibt es eine ganz einfache Lösung, auf die ich noch nicht gekommen bin?


----------



## InfectedBytes (24. Feb 2015)

Wenn ich dich richtig verstanden habe, dann möchtest du aus einer anderen Klasse heraus auf das log Objekt deiner TestKlasse zugreifen?
Dazu musst du eben auch eine instanz deiner Testklasse haben.
Entweder erzeugst du eine neue Instanz oder du übergibst sie direkt dem Konstruktor (oder per setter, etc.)

```
class AndereKlasse {
  private TestKlasse testKlasse;
  public AndereKlasse() { //Variante 1
    testKlasse = new TestKlasse();
  }
  public AndereKlasse(TestKlasse klasse) {//Variante 2
    testKlasse = klasse;
  }
  public void doSomething() {
    testKlasse.log.testmethode();
  }
}
```


----------



## zap (25. Feb 2015)

Danke, da hätte ich auch selber drauf kommen müssen  Bin noch ans Processing-Programmieren gewöhnt.


----------

