Avatar billede Max Novice
17. november 2001 - 16:15 Der er 7 kommentarer og
2 løsninger

Ikke-statiske variable.

Hjælp, jeg er blevet blind.
Jeg kan simpelthen ikke se hvad der er galt her! Jeg skriver :

public class KinesiskLotteri {
  private int[] lodder;
  private int lodderStoerrelse; // frit oversat (oe=ø)
  public static void main(String[] args) {
    final String GEVINST_FIL = \"gevinster.txt\";
    final int ANTAL_LODDER = 100;
    final int ANTAL_GEVINSTER = 10;
    int[] gevinster = new int[ANTAL_GEVINSTER];
   
    initierLodder(ANTAL_LODDER);
    for (int i=0;i<ANTAL_LODDER;i++) {
      System.out.println(lodder[i]);
    } 
    System.out.println(\"Antal : \"+lodderStoerrelse);
   
  } // main
  public static void initierLodder(int antalLodder) {
    for (int i=0;i<=antalLodder-1;i++) {
      lodder[i]=i+1;
    } // for
    lodderStoerrelse=antalLodder;
  } // initierLodder

} // KinesiskLotteri

.. og jeg får :

E:\\Java Source\\KinesiskLotteri.java:12: non-static variable lodder cannot be referenced from a static context
      System.out.println(lodder[i]);
                        ^
Hvad gør jeg galt?

Håber I kan hjælpe..
/Mnc
Avatar billede Max Novice
17. november 2001 - 16:16 #1
obs. pilen skal stå under lodder[i]...
/Mnc
Avatar billede soreno Praktikant
17. november 2001 - 16:30 #2
du kan ikke refere til \"globale\" variabler fra statiske metoder:
private int[] lodder;
private int lodderStoerrelse;

opret dem evt. i main, og overfør dem som parametre til initierLodder(..)
Avatar billede cs_henrik Nybegynder
17. november 2001 - 16:30 #3
Det skyldes, at lodder er defineret således, at variablen findes i hvert objekt af klassen. Du forsøger at få fat i den fra en statisk metode - altså en metode, der er delt af alle objekter af klassen.
Avatar billede jakoba Nybegynder
17. november 2001 - 16:31 #4
du skal erklære de variable som static:

  private static int[] lodder;
  private static int lodderStoerrelse; // frit oversat (oe=ø)
Avatar billede cs_henrik Nybegynder
17. november 2001 - 16:31 #5
soreno -> Du vandt med 2 sek. :-)
Avatar billede soreno Praktikant
17. november 2001 - 16:33 #6
;)
Avatar billede Max Novice
17. november 2001 - 16:34 #7
Ok.. soreno var hurtigst, men cs_henrik kom med det \"mest rigtige\" svar. begge får points, tak for hjælpen..

/Mnc
Avatar billede lsimony Nybegynder
17. november 2001 - 16:35 #8
Mangler du ikke at definer størrelse af din array lodder?

Avatar billede Max Novice
17. november 2001 - 16:36 #9
nope.. hvis du ikke definerer størrelsen, bliver størrelsen bare lig med det antal \"poster\" du propper i tabellen..

/Mnc
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester