[Java] variabele alleen bruikbaar binnen eigen methode??

Pagina: 1
Acties:

  • Thefirstikke
  • Registratie: Juni 2000
  • Niet online
Ik heb in een klasse de methode getTijd() die de systeemtijd in millieseconden opvraagt mbv system.currentTimeMillis();

Zo ziet mijn code (beknopte versie) eruit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public long getTijd() 
    {
        sTijd = System.currentTimeMillis();
            
        System.out.println("sTijd: "+ sTijd);
        return sTijd;
    }

    public long printTijd() 
    {
        System.out.println("sTijd: "+ sTijd);
        return 0;
    }


Het probleem is nu dat de variabele sTijd (van het type long) helemaal leeg is als ik hem in printTijd() af wil drukken. Ik heb me helemaal rot gezocht maar niks kunnen vinden, dus mijn vraag: Hoe kan dit?

[ Voor 7% gewijzigd door Thefirstikke op 26-11-2003 12:48 ]


  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
is je getTijd() methode al een keer aangeroepen voordat printTijd() wordt aangeroepen?

Post je hele code anders eens...

[ Voor 25% gewijzigd door Stephan Oudmaijer op 26-11-2003 12:52 ]


  • Thefirstikke
  • Registratie: Juni 2000
  • Niet online
jup, in de bovenliggende klasse wordt getTijd() al een keer aangeroepen. Op het moment dat dat gebeurd, hoeft alleen de tijd op dat moment in sTijd gestopt te worden.

  • Jochem Knoops
  • Registratie: November 2000
  • Laatst online: 25-11-2025
Thefirstikke schreef op 26 november 2003 @ 12:47:
Ik heb in een klasse de methode getTijd() die de systeemtijd in millieseconden opvraagt mbv system.currentTimeMillis();

Zo ziet mijn code (beknopte versie) eruit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public long getTijd() 
    {
        sTijd = System.currentTimeMillis();

// dit is debug informatie neem ik aan          
//      System.out.println("sTijd: "+ sTijd);
        return sTijd;
    }

    public void printTijd() 
    {
        System.out.println("sTijd: "+ getTijd());
    }


Het probleem is nu dat de variabele sTijd (van het type long) helemaal leeg is als ik hem in printTijd() af wil drukken. Ik heb me helemaal rot gezocht maar niks kunnen vinden, dus mijn vraag: Hoe kan dit?
dat moet hem worden

[ Voor 9% gewijzigd door Jochem Knoops op 26-11-2003 12:54 ]


  • Thefirstikke
  • Registratie: Juni 2000
  • Niet online
M'n code is een paar honderd regels, maar is verder geheel afhankelijk van wat ik al heb gepost.

  • Thefirstikke
  • Registratie: Juni 2000
  • Niet online
Krijg ik dan niet de tijd te zien het moment dat ik System.out.println(.....) aanroep? De tijd moet in sTijd bewaard worden...

  • Jochem Knoops
  • Registratie: November 2000
  • Laatst online: 25-11-2025
Thefirstikke schreef op 26 november 2003 @ 12:55:
[...]


Krijg ik dan niet de tijd te zien op het moment dat ik System.out.println(.....) aanroep? De tijd moet in sTijd bewaard worden...
zolang jij dei variable sTijd in de scope van de class hebt staan, dan vul je hem op het moemnt dat die functie aangeroepen wordt end at blifjt hij dus.
dus sTijd blijft hetzelfde totdat je weer opnieu die functie aanroept.

edit:

natuurlijk als je wilt dat een oude systeemtijd wordt afgedrukt dan moet je alleen sTijd afdrukken en niet die functie aanroepen in die println

[ Voor 16% gewijzigd door Jochem Knoops op 26-11-2003 12:58 . Reden: meer info ]


  • vogeltje
  • Registratie: December 2001
  • Laatst online: 10-08-2025
Thefirstikke schreef op 26 november 2003 @ 12:55:
[...]


Krijg ik dan niet de tijd te zien het moment dat ik System.out.println(.....) aanroep? De tijd moet in sTijd bewaard worden...
Je krijgt dan gewoon de tijd van sTijd te zien, maw. de waarde van sTijd

Die "sTijd" blijft 'leven' zolang het huidige object gewoon aanwezig is.

[ Voor 11% gewijzigd door vogeltje op 26-11-2003 12:58 ]

binnenkort een hele dikke casemod :P


  • whoami
  • Registratie: December 2000
  • Laatst online: 23:03
Misschien moet je eens iets lezen over de scope van variabelen enzo...

https://fgheysels.github.io/

Pagina: 1