# Objekt global verfügbar machen



## ash34 (26. Sep 2012)

Hy,

ich stehe gerade vor dem Problem, dass ich eine Klasse mit main - Methode geschrieben habe. In dieser main - Methode wird ein Objekt der eigenen Klasse erzeugt.
Wie komme ich in anderen Klassen an genau dieses Objekt? (ohne static zu benutzen)


```
public class Test{

public static void main(String [] args){
	Test test = new Test();	
		
	}
}
```


----------



## bygones (26. Sep 2012)

du uebergibst den Klassen die das Objekt brauchen dieses per Konstruktor oder methode.


----------



## ash34 (26. Sep 2012)

Und wie genau sieht das dann aus?
Irgendwie stehe ich da auf dem Schlauch...


----------



## bone2 (26. Sep 2012)

```
public class Test{
 
public static void main(String [] args){
    Test test = new Test(); 
    AndererTest aTest = new AndererTest(test);
    aTest.doFoo();
}
}
```


```
public class AndererTest {
    private Test test;
    
    public AndererTest(Test test) {
        this.test = test;
    }

    public void doFoo() {
        // kennt test
    }
}
```

Galileo Computing :: Java ist auch eine Insel - 5 Eigene Klassen schreiben lesen!


----------



## d3rbastl3r (26. Sep 2012)

Oder du verwendest das umstrittene Singelton-Pattern 


```
public class Test{
    private static Test instance;

    private Test(){
    }

    public static Test getInstance(){
        if(Test.instance == null){
            Test.instance = new Test();
        }

        return Test.instance;
    }

    public static void main(String [] args){
        /* Diesen aufruf kannst du Global überall in dem Programm verwenden
         * und bekommst immer das selbe Objekt welcher (falls nciht vorhanden)
         * automatisch angelegt wird. */
        Test.getInstance();
    }
}
```

[EDIT]
Aber wie gesagt, das Pattern ist ziemlich umstritten da sich die Singelton-Klassen nur schwer mit Unittests testen lassen.
[/EDIT]


----------

