# Variable an andere Klasse übergeben?



## r0xta (21. Nov 2009)

Hallo zusammen,

ist es möglich die Variable einer Klasse an eine andere zu übergeben?

In Klasse 1 hab ich folgende Methode:


```
public long returnZeit() {
        zeitStart = System.currentTimeMillis();
        return zeitStart;
    }
```


In Klasse 2 möchte ich diese Variable nun in dieser Methode aufrufen


```
public long zeitMessen (){
        zeitBenoetigt = ((zeitZiel - zeitStart)/1000);
        return zeitBenoetigt;
        }
```

Leider scheint dies nicht ohne weiteres zu funktionieren... Mach ich was falsch?


----------



## 0din (21. Nov 2009)

ganz simpel, du rufst die methode in der gleichen klasse bzw. im gleichen objekt

damit du die methode so nutzen kannst musst du das andere objekt darum bitten...


```
private Objekt k1 = new klasse1();

public void machwas()
{
     int retunWertWar = k1.methode();
}
```

das sollteste in deinen kontext übertragn können


----------



## r0xta (21. Nov 2009)

Sorry, aber ich habs noch nicht verstanden.
Der Code in Klasse1 is soweit in Ordnung, ich muss in Klasse2 ran, richtig??


```
private long return = new Klasse1();    
        
    //Benötigte Zeit errechnen
    public long zeitMessen (){
        
        int zeitStart = return.returnZeit();        
        zeitBenoetigt = ((zeitZiel - zeitStart)/1000);
        return zeitBenoetigt;
        }
```

Was macht dieses private long return? Stellt das ne Verbindung zur Klasse1 her? Und wieso muss ich das als Variable speichern?
Und über return.returnZeit() rufe ich dann aus Klasse 1 die Methode returnZeit() auf oder?
Warum kann ich dann nicht gleich Klasse1.returnZeit() anwenden?
Oder schieß ich grad irgendwie voll vorbei?


----------



## 0din (21. Nov 2009)

also;

du musst deine objekte verbinden damit du zwischen denen an deine methoden oder werte kommst.
das machst du indem du sie in variablen (die vom typ der klasse sind) speicherst.
bei den variablen kannste dann mit "variabel.methode()" die methoden der anderen klasse ausführn.

das "private long return" wird nich funktioniern, return is nen vordefiniertes wort.
"private long ret" würde gehn.
private sagt das des ganze nur in dieser klasse erreichbar is (nicht von außen)
long gibt den typ der variablen an
ret is die bezeichnung für die variable

das "= new klasse1();" erzeugt das objekt.
du sagst also variable ret ist ein neues objekt der klasse1


----------

