[Java] cannot be referenced from a static context

Pagina: 1
Acties:
  • 38 views sinds 30-01-2008

  • Mr. Bandicoot
  • Registratie: Januari 2004
  • Laatst online: 20-12-2022
Hey all,

ok ik zit met een klein probleempje, ben bezig met een programmatje om informatie op te slaan in een array en daarvoor heb ik een klasse "Voertuiglijst.java" deze ziet er als volgt uit. (dit is niet de hele class maar alleen het stukje waar het om draait)

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class VoertuigLijst {

  private Auto[] lijstvanvoertuigen = new Auto[0];
  private int aantalvoertuigen;

  public VoertuigLijst() {

  }
      /**
       * Voegt een nieuw Rationaal-object toe aan de lijst
       * @param rat Rationaal
       */
      public void voegautotoe(Auto auto) {

        Auto[] nieuwelijst = new Auto[++aantalvoertuigen];

        for (int i = 0; i < aantalvoertuigen - 1; i++){
           nieuwelijst[i] = lijstvanvoertuigen[i];
         }

        nieuwelijst[aantalvoertuigen - 1] = auto;

        lijstvanvoertuigen = nieuwelijst;

      }


dan probeer ik de methode voegautotoe aan te roepen in de main(in een andere klasse genaamd "testprogje.java") om te testen of het werkt met behulp van het volgende statement (dit is na het aanmaken van auto1 doormiddel van de klasse Auto.java)
code:
1
VoertuigLijst.voegautotoe(auto1);

als ik dit probeer te compileren geeft JBuilder de volgende fout

"testprogje.java": non-static method voegautotoe(AutoFileProgje.Auto) cannot be referenced from a static context at line 38, column 19

iemand een idee hoe ik dit zou kunnen oplossen?

[ Voor 6% gewijzigd door Mr. Bandicoot op 17-01-2004 14:27 ]


  • PommeFritz
  • Registratie: Augustus 2001
  • Laatst online: 24-11-2025

PommeFritz

...geen friet

Zet even je code in code-tags...
Mr. Bandicoot schreef op 17 januari 2004 @ 14:18:
VoertuigLijst.voegautotoe(auto1);

als ik dit probeer te compileren geeft JBuilder de volgende fout

"testprogje.java": non-static method voegautotoe(AutoFileProgje.Auto) cannot be referenced from a static context at line 38, column 19
JBuilder geeft toch precies aan wat er fout gaat? Je wilt een methode aanroepen die niet static is, op de manier waarop je dus class methods (=static methods) aanroept.
Je moet je VoertuigLijst instantieren!
code:
1
2
3
VoertuigLijst voertuigen = new VoertuigLijst();
...
voertuigen.voegautotoe(auto1);

FireFox - neem het web in eigen hand


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Hoi, welkom op GoT en P&W. ;)

't Is echt wel logisch dat er een fout gegeven wordt hoor. Je hebt nl. een member method die je aanroept als een static method.
Member methods moet je aanroepen op instances van de classes (objecten dus), en niet op de class zelf.
Wat jij nu in je code doet, is een methode aanroepen als een static method. (Je roept ze dus 'op de class zelf' ipv een object te instantieren van die class, en die method op dat object aan te roepen).

Eigenlijk is dit basis OO kennis, dat je terugvindt in iedere Java tutorial/boek. Als je je wat dieper in de fout had verdiept, dan had je de oplossing hoogstwaarschijnlijk zelf ook wel gevonden. ;)

[ Voor 97% gewijzigd door whoami op 17-01-2004 14:34 ]

https://fgheysels.github.io/


Dit topic is gesloten.